Visual Basic.NET - Revisar codigo por favor

 
Vista:

Revisar codigo por favor

Publicado por erque (26 intervenciones) el 17/12/2005 21:01:17
Hola. Vengo del VB6 y estoy aprendiendo vb.net. Tengo un problema al de de baja, modificar y alta de registros. Doy de alta un registro, lo modifico, lo doy de baja, doy otro de alta y al borrarlo o modificarlo o dar otro de alta me da error. Es decir, cada 2-3 operaciones de alta baja o modificación me peta. Me sale por ejemplo este error:
Excepción no controlada del tipo 'System.Data.DBConcurrencyException' en system.data.dll
Información adicional: Infracción de concurrencia: DeleteCommand afectó a 0 registros.
Pongo el código lo más completo posible.

Declaraciones:
Private latabla As DataTable
Private eldataset As New DataSet
Private eldatarow As DataRow
Private laconexion As OleDbConnection
Private registroactual As Integer
Private eldataadapter As OleDbDataAdapter
Private actualiza As OleDbCommandBuilder

Form1_Load
Dim basedatos As String = "labasededatos.mdb"
Dim cadenaconexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & basedatos & ";"
registroactual = 0
laconexion = New OleDbConnection(cadenaconexion)
Dim cadenaSQL As String = "Select * from latabla"
eldataadapter = New OleDbDataAdapter(cadenaSQL, laconexion)
laconexion.Open()
eldataadapter.Fill(eldataset, "latabla") 'cambiado
laconexion.Close()
actualiza = New OleDbCommandBuilder(eldataadapter)
latabla = eldataset.Tables("latabla") 'cambiado
For Each eldatarow In latabla.Rows 'esto es para llenar un listbox
Me.listado.Items.Add(eldatarow.Item("cliente") & " - " & eldatarow.Item("nif") & vbCrLf)
Next
eldatarow = Me.eldataset.Tables("latabla").Rows(Me.registroactual)
TextBox1.Text = eldatarow.Item("cliente")
Label1.Text = "Registro: " & registroactual + 1 & " de " & eldataset.Tables("latabla").Rows.Count 'cambiado

boton Alta

eldatarow = Me.eldataset.Tables("latabla").NewRow 'cambiado
eldatarow("cliente") = Me.TextBox2.Text
Me.eldataset.Tables("latabla").Rows.Add(eldatarow)
Me.eldataadapter.Update(Me.eldataset, "latabla")

Boton modificar

eldatarow("promotor") = Me.TextBox1.Text & ""
Me.eldataadapter.Update(Me.eldataset, "latabla")

Boton borrar

Dim oDataRow As DataRow
oDataRow = Me.eldataset.Tables("latabla").Rows(Me.registroactual)
oDataRow.Delete() ' borrar la fila
Dim latablaBorrados As DataTable
latablaBorrados = Me.eldataset.Tables("latabla").GetChanges(DataRowState.Deleted)
Me.eldataadapter.Update(latablaBorrados)
Me.eldataset.Tables("latabla").AcceptChanges()

Por favor, estoy perdido. El Ado normal es más fácil no?
Gracias por anticipado a quien me pueda ayudar.
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