“This row already belongs to this table”

Posted by  Lady Bird Johnson
 2647  View(s)
Rate this:
Hi Expert,

I have got “This row already belongs to this table” error message. Any suggestions always is appreciated. It errors out on my command button save event. I've listed code for the entire form just to give you an idea on what I'm doing. Hope this helps

Private Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
    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
        Dim Standardsdataadapter As New SqlClient.SqlDataAdapter(SPgetStandards, con)
        Dim Detaildataadapter As New SqlClient.SqlDataAdapter(SPgetRecordDetail, con)
        Detaildataadapter.Fill(dsRecords, "Record")
        Standardsdataadapter.Fill(dsStandard, "Standard")

        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)
            Next currentcolumn
        Next currentrow
        ' con.Close()
        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))
                '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!!!!!
            End If
    End Using
End Sub

Any help on above is really appreciated.
  1. Re: “This row already belongs to this table”


    Move this line:

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

    To be the first line inside of your If block.