Visual Basic.NET - borrar ultima fila de una datatable

 
Vista:

borrar ultima fila de una datatable

Publicado por Julio (2 intervenciones) el 14/04/2011 11:17:50
uenas; mi problema es el siguiente:
Tengo 2 datatables y las comparo de forma que, si dos filas coinciden, la copio en una tercera datatable; esto me funciona sin problemas. La cuestión es que tengo que eliminar esas filas que coinciden de las 2 primeras datatables y ahí es donde me da el error. Pongo mi código y así lo explico mejor:

Private Sub compararficheros()

Dim i As Integer
Dim j As Integer
Dim contador As Integer
contador = 0
For i = 0 To dtBanco.Rows.Count - 1
For j = 0 To dtQuiter.Rows.Count - 1
If dtBanco.Rows(i)("Importe").ToString() = dtQuiter.Rows(j)("Importe").ToString() Then
contador = contador + 1
End If
Next j
If contador = 1 Then
Dim row As DataRow
row = conc.NewRow()
For j = 0 To dtQuiter.Rows.Count - 1
If dtBanco.Rows(i)("Importe").ToString() = dtQuiter.Rows(j)("Importe").ToString() Then
row("Concepto") = dtQuiter.Rows(j)("Concepto")
borrarfiladt(dtQuiter, j)
End If
Next
row("Importe") = dtBanco.Rows(i)("Importe")
row("Fecha") = dtBanco.Rows(i)("Fecha")
conc.Rows.Add(row)
borrarfiladt(dtBanco, i)
End If
contador = 0
Next i

DataGridView1.DataSource = dtBanco
DataGridView2.DataSource = dtQuiter
DataGridView3.DataSource = conc
DataGridView3.AutoResizeColumns()

End Sub

Private Sub borrarfiladt(ByRef table As DataTable, a As Integer)

Dim ultimafila As Integer
ultimafila = table.Rows.Count - 1

table.Rows(a)("Importe") = table.Rows(ultimafila)("Importe")
table.Rows(a)("Fecha") = table.Rows(ultimafila)("Fecha")
table.Rows(a)("Concepto") = table.Rows(ultimafila)("Concepto")
table.Rows(ultimafila).Delete()
table.AcceptChanges()

End Sub

Mi idea es copiar los datos de la última fila a la posición de la fila que quiero borrar y luego borrar la última fila; pero no funciona, me dice que no existe la posición. Cuando compilo sin "borrarfiladt(..)" va sin problemas, quiero decir, m copia perfectamente las filas que coinciden en la 3ª datatable; el problema viene cuando añado lo de borrar.
Gracias
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