我已经阅读了 stackoverflow 中的现有代码,但我仍然迷失了如何解决这个问题。此行已属于此表。任何建议总是受到赞赏。它在我的命令按钮保存事件上出错。我列出了整个表单的代码,只是为了让您了解我在做什么。希望这可以帮助
Private Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
DataGridView1.EndEdit()
Dim con As SqlConnection = CompDB.GetConnection
Dim cmd As New System.Data.SqlClient.SqlCommand
Dim SPgetStandards As String = "dbo.SPgetStandards"
Dim SPgetRecordDetail As String = "dbo.SPgetRecordDetail"
Dim dsStandard As New DataSet
Dim dsRecords As New DataSet
Dim currentrow As DataRow
Dim currentcolumn As DataColumn
MsgBox("Record id is " & RecordID)
Using con
con.Open()
Dim Standardsdataadapter As New SqlClient.SqlDataAdapter(SPgetStandards, con)
Dim Detaildataadapter As New SqlClient.SqlDataAdapter(SPgetRecordDetail, con)
Detaildataadapter.Fill(dsRecords, "Record")
Standardsdataadapter.Fill(dsStandard, "Standard")
'5/31/13
'Figured out how to run a loop through a table and write to the console
For Each currentrow In dsStandard.Tables("Standard").Rows
For Each currentcolumn In dsStandard.Tables("Standard").Columns
'Debug.WriteLine(currentrow(currentcolumn) & ControlChars.Tab & ControlChars.Tab)
'MsgBox(currentcolumn.ToString)
'Debug.WriteLine(currentrow.Item(0))
Next currentcolumn
Next currentrow
' con.Close()
'con.Dispose()
Dim newrow As DataRow = dsRecords.Tables("Record").NewRow
For Each oRow As DataGridViewRow In DataGridView1.Rows
If Convert.ToInt16(oRow.Cells("chkbox").Value) = 1 Then
' Debug.WriteLine("It was clicked ", DataGridView1.Columns.Item(1))
Debug.WriteLine(oRow.Cells("ID").Value)
'dsStandard.Tables.Add.Rows("RecordID") = 1234
'dsRecords.Tables.Add.Rows("Standard_Name_ID") = 1234
' newrow("Record_Detail_ID") = RecordID
' newrow("Record_ID") = RecordID
newrow("Standard_Name_ID") = (oRow.Cells("ID").Value)
'/////Errors out here!!!!!dsRecords.Tables("Record").Rows.Add(newrow) '/////Errors out here!!!!!
dsRecords.AcceptChanges()
End If
Next
End Using
End Sub