0
Answer

This row already belongs to another table

Robert Blot

Robert Blot

12y
1.5k
1
When I try to update a record I get an error saying that the row already belongs to another table. I am accessing a specific table to update this record. This is the code for the update. The Project table updates ok. It's the Printer table that throws the error

Private Sub ActionUpdate()
 
        Try
            Select Case tabCodeLevels.SelectedTab.Text
                Case "Projects"
                    Using objProjects As New CodeLevelsBusinessLogic.Project_BL( _
                            strCompany, strApplication)
 
                        objDataSet = objProjects.GetNewProjectDS()
 
                        Dim objDataRow As Data.DataRow = objDataSet.Tables("Project").NewRow
 
                        objDataRow.Item("Project_ID") = New Guid(txtProjectID.Text)
                        objDataRow.Item("Project_Type") = cboProjectType.SelectedItem
                        objDataRow.Item("Project_Status") = cboProjectStatus.SelectedItem
                        objDataRow.Item("Project_CodeLevel") = cboProjectCodeLevel.SelectedItem
                        objDataRow.Item("Project_CodeType") = cboProjectCodeType.SelectedItem
                        objDataRow.Item("Project_Name") = txtProjectName.Text
                        objDataRow.Item("Project_Lead") = txtProjectLead.Text
                        objDataRow.Item("Project_Engineer") = txtProjectEngineer.Text
                        objDataRow.Item("Project_Technician") = txtProjectTechnician.Text
                        objDataRow.Item("Project_SwFwEngineer") = txtProjectSwFwEngineer.Text
                        objDataRow.Item("Project_SwFwTechnician") = txtProjectSwFwTechnician.Text
                        objDataRow.Item("Project_Description") = txtProjectDescription.Text
                        objDataRow.Item("Project_Notes") = txtProjectNotes.Text
                        objDataRow.Item("Project_Date_Added") = dtpProjectDateAdded.Text
                        objDataRow.Item("Project_Last_Modified") = dtpProjectLastModified.Text
 
                        objDataSet.Tables("Project").Rows.Add(objDataRow)
 
                        If Not objProjects.UpdateProject(objDataSet) Then
                            Throw New Exception("Update Project failed")
                        End If
 
                    End Using
 
                Case "Printers"
                    Using objPrinters As New CodeLevelsBusinessLogic.PrinterBL( _
                        strCompany, strApplication)
 
                        objDataSet = objPrinters.GetNewPrinterDS()
 
                        Dim objDataRow As Data.DataRow = objPrintersDS.Tables("Printer").NewRow
 
                        objDataRow.Item("PrinterProject_Name") = cboPrinterProjectName.SelectedItem
                        objDataRow.Item("PrinterProject_ID") = New Guid(txtPrinterProjectID.Text)
                        objDataRow.Item("Printer_ID") = New Guid(txtPrinterID.Text)
                        objDataRow.Item("Printer_Status") = cboPrinterStatus.SelectedItem
                        objDataRow.Item("Printer_Name") = txtPrinterName.Text
                        objDataRow.Item("Printer_SerialNumber") = txtPrinterSerialNumber.Text
                        objDataRow.Item("Printer_ProcessorID") = txtPrinterProcessorID.Text
                        objDataRow.Item("Printer_Architecture") = cboPrinterArchitecture.SelectedItem
                        objDataRow.Item("Printer_Category") = cboPrinterCategory.SelectedItem
                        objDataRow.Item("Printer_Model") = cboPrinterModel.SelectedItem
                        objDataRow.Item("Printer_Phase") = cboPrinterPhase.SelectedItem
                        objDataRow.Item("Printer_Description") = txtPrinterDescription.Text
                        objDataRow.Item("Printer_Notes") = txtPrinterNotes.Text
                        objDataRow.Item("Printer_Date_Added") = dtpPrinterDateAdded.Text
                        objDataRow.Item("Printer_Last_Modified") = dtpPrinterLastModified.Text
 
                        objDataSet.Tables("Printer").Rows.Add(objDataRow)
 
                        If Not objPrinters.UpdatePrinter(objDataSet) Then
                            Throw New Exception("Update Printer failed.")
                        End If
 
                    End Using
 
                Case "Printer Configuration"
                Case "Printer Debug Options"
                Case "Printer Code Updates"
 
            End Select
 
            fileNew()
            ListViewRefresh()
            codeLevelsToolStripStatus.Text = "Record Updated"
 
        Catch ExceptionErr As Exception
            MessageBox.Show(ExceptionErr.Message, strAppTitle)
 
        End Try
 
    End Sub