Home > DeveloperSection > Forums > “This row already belongs to this table”
Lady Bird Johnson
Lady Bird Johnson

Total Post:20

Points:140
Posted on    June-19-2013 3:43 AM

 ADO.Net ADO.Net 
Ratings:


 1 Reply(s)
 1370  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
    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")


        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


Any help on above is really appreciated.


Sumit Kesarwani

Total Post:378

Points:2694
Posted on    June-19-2013 8:40 AM

Hi,

Move this line:

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

To be the first line inside of your If block.


Don't want to miss updates? Please click the below button!

Follow MindStick