• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Visual Basic初心者です。)

Visual Basic初心者のためのData Grid View更新方法

このQ&Aのポイント
  • Visual Basic初心者のため、Button1を使用してData Grid Viewを表示し、Data Grid Viewから更新したデータをButton2でmdbファイルに保存する方法について教えてください。
  • 参考にしたブログでは、Button1でData Grid Viewの表示はできるが、更新(Button2)の際にDataAdapter.SelectCommandプロパティを初期化する必要があると書かれています。
  • 具体的な実行コードは提供されていますので、このコードによってデータを更新する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

SqlDataAdapter型の変数 AdapterがどこかでDisposeとかされてしまったのではありませんか? または フォームのPrivate変数ではなくて Button1_Clickのローカル変数とかになっていませんか VBの設定で変数の宣言を強制するためのOption Explicitを Offの設定にしたりしていませんか 変数adapterが Notthingのままだと 質問のようなエラーが表示されます もう一度ソースをよく確認しましょう > Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter) にブレークポイントを張って実行して止まったときにIDEの 自動変数ウオッチウィンドウの adapterがどうなっているのか確認しましょう

red0176
質問者

補足

変数adapterはNothingになっていました。 ただ、どこが原因なのかが掴めません。 下記のコードが上記コード以外の部分です。 Imports System.Data.SqlClient Public Class Form1 Private connection As SqlConnection Private adapter As SqlDataAdapter Private ds As DataSet Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Using cn As New System.Data.OleDb.OleDbConnection Using cm As New System.Data.OleDb.OleDbCommand Using da As New System.Data.OleDb.OleDbDataAdapter Dim ds As New DataSet 'EXE と同じフォルダーにデータも入れておく Dim FileName As String = System.IO.Path.Combine(Application.StartupPath(), "Test.mdb") Dim TableName As String = "sample" '指定のテーブル名(上記ファイル内に存在する事) '接続文字列については、WEB上で、[接続文字列]をキーに検索して見て下さい。 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & FileName & ";" 'パスワード等があれば続けて記入 'コネクションの設定 cm.Connection = cn 'データソースで実行するSQL文の設定 cm.CommandText = "SELECT * from " & TableName 'データソース内のレコードを選択するためのSQLコマンドの設定 da.SelectCommand = cm 'データを取得する da.Fill(ds, TableName) 'データグリッドに表示するデータソースを設定 DataGridView1.DataSource = ds 'グリッドを表示するための、DataSource 内のリストを設定 DataGridView1.DataMember = TableName 'データソースへの接続を閉る End Using End Using End Using End Sub

その他の回答 (1)

回答No.2

補足分に掲載されたコードは、サイトのサンプルコードを無断で掲載されたものですよね。 (サポートに申し出て削除してもらって下さい) グローバル変数とローカル変数の使い分けや意味を理解されていないようですが、特に他人の コードを使用する場合は、よく理解してから使用しないと、変数名がダブっていたり、意味を 理解していないとバグの元になります。 今一度、基本的な事なので、変数の扱い方やUsing 等について調べなおして下さい。 その辺を理解されないといつまでたっても解決できませんよ。