.net データベースへ反映する方法
<環境>
言語:Microsoft Visual Studio 2008
データベース:SQL Server 2005 非接続型のデータアクセスです。
以前同じ質問をさせていただいたのですが、解決できなかったため、再度投稿させていただきました。
<質問>
DataGridViewにデータを表示し、登録、修正、削除を行った後、
更新ボタンを押下でDataGridViewの内容をデータベース(SQLServer)に反映したいのですが、エラーとなり反映できません。
http://japan.internet.com/developer/20070522/26.html
を参考にしているのですが、四苦八苦。全然前に進めない状態です。
自作したコードを下記の通りです。いったいどこを直せばよろしいでしょうか?どなたかアドバイスよろしくお願いします。
<エラー>----------------------------------------------------------
"System.ArgumentNullException: 値を Null にすることはできません。
パラメータ名: dataTable
場所 System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
--------------------------------------------------------------------
Private Sub frmDataGridViewTest_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strsql As String
Call DBConnect() 'DB接続
strsql = "SELECT ID, 名称, 型式 FROM ATBL ORDER BY ID"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim ds As DataSet = New DataSet()
dataadapter.Fill(ds, "テーブル")
dgrview.DataSource = ds
dgrview.DataMember = "テーブル"
Call Disconnect() 'DB切断
End Sub
Private Sub BTN_更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_更新.Click
Dim strsql As String
Call DBConnect() 'DB接続
strsql = "SELECT ID, 名称, 型式 FROM ATBL ORDER BY ID"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
dataadapter.Fill(ds, "テーブル")
Dim dt As DataTable = ds.Tables("テーブル")
'<<<DataGridViewコントロールでの変更をデータベースに戻す>>>
Dim sqlCmdBuilder As New SqlCommandBuilder(dataadapter)
sqlCmdBuilder.GetUpdateCommand()
dataadapter.Update(ds.Tables("テーブル"))
Call Disconnect() 'DB切断
End Sub
お礼
回答ありがとうございます。参考になりました。