Visual Basic.NET - Error: esta fila ya pertenece a otra tabla

   
Vista:

Error: esta fila ya pertenece a otra tabla

Publicado por Juan (2 intervenciones) el 12/08/2008 11:04:36
Tengo dos tablas de dos basess de datos diferentes y el codigo siguiente es
el que me da el error al insertar una nueva fila, he leido algo sobre este
error pero utiliza la instrución import, que creo no puedo utilizar yo , ya
que hago un calculo en la tabla.

'Paso los datos de uno de la tabla del PDA a la local
Dim f As Integer, j As Integer, i As Integer, k As Integer
Dim dtLocalID As DataTable
Dim daLocalID As SqlDataAdapter
Dim sSelLocal As String = "SELECT * FROM lecturas "
'Todo esto lo hago para saber la ID y dar el siguiente numero
daLocalID = New SqlDataAdapter(sSelLocal, cnnLocal)
dtLocalID = New DataTable
' Llenar la tabla con los datos indicados
daLocalID.Fill(dtLocalID)
j = dtLocalID.Rows.Count
If j = 0 Then
k = 1
Else
Dim drlocalID As DataRow = dtLocalID.Rows(j - 1)
k = drlocalID("ID") + 1
End If

'Aqui ya trabajo con las dos filas y paso la una a la otra
f = 0
Dim dr As DataRow = dt.Rows(f)

j = dt.Rows.Count

For i = 0 To j - 1
Dim drLocal As DataRow = dtLocal.NewRow()
drLocal("ID") = k + i
drLocal("lec_fecha") = dr("lec_fecha").ToString
drLocal("lec_provee") = dr("lec_provee").ToString
drLocal("lec_cliente") = dr("lec_cliente").ToString
drLocal("lec_nroCanal") = dr("lec_nroCanal").ToString
drLocal("lec_pieza") = dr("lec_pieza").ToString
drLocal("lec_paisnaci") =
buscarPais(dr("lec_paisnaci").ToString)
drLocal("lec_paisengorde") =
buscarPais(dr("lec_paisengorde").ToString)
drLocal("lec_paissacri") =
buscarPais(dr("lec_paissacri").ToString)
drLocal("lec_pais_desp") =
buscarPais(dr("lec_pais_desp").ToString)
drLocal("lec_regmata") = dr("lec_regmata").ToString
drLocal("lec_regdespie") = dr("lec_regdespie").ToString
dtLocal.Rows.Add(drLocal)
If i + 1 < j Then dr = dt.Rows(i + 1)
Next i
'

daLocal.Update(dtLocal)
dtLocal.AcceptChanges()
MessageBox.Show("Traspasados " & j & " registros ", "",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As DBConcurrencyException
MessageBox.Show("Error de concurrencia:" & vbCrLf & ex.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder