1

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
4

1 に答える 1

0

次の行を移動します。

Dim newrow As DataRow = dsRecords.Tables("Record").NewRow

ブロック内の最初の行になりますIf

于 2013-06-06T00:46:32.483 に答える