- ベストアンサー
データグッドビュー編集後のエラーについて
- VB初心者がデータグッドビューの編集でエラーを解決する方法について
- データグリッドビューの編集後にデータベースに反映するプログラムの作成方法
- データグリッドビューの編集後にオブジェクト参照エラーが発生する原因と解決法
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 これではどうですか? Imports System.IO Imports System.Data Imports System.Windows.Forms Public Class Form1 Private dAdp As OleDb.OleDbDataAdapter Private dSet As DataSet = New DataSet("T_資料") Public Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load '▼フォームロード時の処理 Dim cn1 As New OleDb.OleDbConnection("Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=" & Application.StartupPath & "\登録.mdb;") Dim cmd1 As New OleDb.OleDbCommand("SELECT * FROM T_資料", cn1) cn1.Open() dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM T_資料", cn1) dAdp.Fill(dSet, "T_資料") Me.DataGridView1.DataSource = dSet.Tables("T_資料") cn1.Close() End Sub Public Sub cmd_Db_reg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Db_reg.Click '▼「データベースに登録」ボタンを押下したときの処理 Try Dim Builder As New OleDb.OleDbCommandBuilder(dAdp) Builder.GetUpdateCommand() dAdp.Update(dSet.Tables("T_資料")) MessageBox.Show("更新に成功しました。") Catch ex As Exception MessageBox.Show("更新に失敗しました。" + vbCr + ex.Message) End Try End Sub End Class
その他の回答 (1)
- Wr5
- ベストアンサー率53% (2173/4061)
>Dim cn1 As New OleDb.OleDbConnection("Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=" & Application.StartupPath & "\登録.mdb;") >Dim cmd1 As New OleDb.OleDbCommand("SELECT * FROM T_資料", cn1) >cn1.Open() >Dim dAdp As OleDb.OleDbDataAdapter このdAdpって、ローカル変数だったりしないですか?
お礼
アドバイスありがとうございます。 無事データベースの更新が行えました。
補足
早々のご回答ありがとうございます。 グローバル変数に変更したら、「オブジェクト参照がオブジェクト インスタンスに設定されていません。」というエラーは無くなりましたが、「更新には、変更された行を含む DataRow コレクションが渡されたとき、有効な UpdateCommand が必要です。」というエラーが出てしまいました・・・ Public Class Form1 Public dAdp As OleDb.OleDbDataAdapter Public dSet As DataSet = New DataSet("T_資料")
お礼
無事にデータベースの更新ができました。 助かりました。ありがとうございました。