VB2005、SQLServer2005環境です。
度々質問させていただきます。コード1、コード2、コード3を主キーに持つAテーブルがあります。
そのテーブルからある特定レコードを削除したいのですが、
targetRow = dt.Rows.Find(findTheseVals(2))
のところでエラーになります。
エラー内容は、インデックスを付加するキーには 3 値が必要ですが、1 値を取得しました。
いったいどういう意味なのでしょうか?FINDする時の書き方が悪いのでしょうか?
ご教授お願いします。
Private Sub BTN_削除_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BTN_削除.Click
Dim strsql As String
Dim findTheseVals(2) As Object
'///DB接続 省略///
strsql = "SELECT * FROM Aテーブル"
Dim comm As SqlCommand = New SqlCommand(strsql, Con)
Try
Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim ds As DataSet = New DataSet()
dataadapter.Fill(ds, "Aテーブル")
Dim dt As New DataTable
dt = ds.Tables("Aテーブル")
Dim targetRow As DataRow
targetRow = dt.NewRow()
findTheseVals(0) = TXT_コード1.Text
findTheseVals(1) = TXT_コード2.Text
findTheseVals(2) = TXT_コード3.Text
targetRow = dt.Rows.Find(findTheseVals(2)) ←ここでエラー
targetRow.Delete()
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(dataadapter)
dataadapter.Update(ds, "Aテーブル")
Catch oExcept As Exception
'例外が発生した時の処理
Finally
'///DB切断省略///
End Try
End Sub
お礼
最近、.netを勉強し始めたばかりで単純なことでもわからないことばかりです。助かりました。 ありがとうございます。