掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ADO.NETを使用した削除及び更新を行うには? (ID:146299)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。下記の問題について解決策をお願いします。 ■環境 OS:XP SP2 開発環境:VSDE2008(SP1)のVB2008 .NET Framework:3.0 データベース:Access2002でmdb作成 ■概要 プロジェクト作成後、フォームにデータテーブルの列の要素をドロップし、 バインディングによりフォームを作成しています。 起動時に入力フォームにデータを入力しBindingNavigatorコントロールにより新規追加/削除/保存を行うプログラムです。 ■問題点 新規追加→データを入力→保存 の場合はデータベースは更新されるのですが、 データベースに保存されているデータを編集→保存 の場合は"InvalidOperationExceptionはハンドルされませんでした。 更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です。"とエラーになり更新できません。 データベースに保存されているデータを削除→保存 の場合は"InvalidOperationExceptionはハンドルされませんでした。 更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な DeleteCommand が必要です。"とエラーになり更新できません。 ■コード Imports System.Data.OleDb Public Class CustomerForm Dim Adapter As OleDbDataAdapter Dim dSet As New DataSet Private Sub CustomerForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim strSQL As String = "SELECT * From customer" Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0/以下省略) Adapter = New OleDbDataAdapter(strSQL, Cn) Dim cBld = New OleDb.OleDbCommandBuilder(Adapter) Me.CustomerTableAdapter.Fill(Me.OrderDataSet.customer) End Sub Private Sub BindingNavigatorMoveFirstItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveFirstItem.Click CustomerBindingSource.MoveFirst() End Sub Private Sub BindingNavigatorMovePreviousItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMovePreviousItem.Click CustomerBindingSource.MovePrevious() End Sub Private Sub BindingNavigatorMoveNextItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveNextItem.Click CustomerBindingSource.MoveNext() End Sub Private Sub BindingNavigatorMoveLastItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorMoveLastItem.Click CustomerBindingSource.MoveLast() End Sub Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click CustomerBindingSource.AddNew() End Sub Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click If MsgBox("削除してもよろしいですか", MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2) = MsgBoxResult.Yes Then CustomerBindingSource.RemoveCurrent() End If End Sub Private Sub CustomerBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CustomerBindingNavigatorSaveItem.Click, Me.FormClosing Me.Validate() If HandleInputError() = False Then If TypeName(e) = "FormClosingEventArgs" Then DirectCast(e, FormClosingEventArgs).Cancel = True End If Return End If Me.CustomerBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.OrderDataSet) End Sub ■データベースファイル order.mdb 商品テーブル id name address phoneの4列 idが主キーでオートナンバーに設定してます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.