Cita:
Iniciado por federed
hola,
tengo un sistema de inserción de registros en el que me conecto con este código:
Código:
Private dt As DataTable
Private da As OleDbDataAdapter
Private fila As Integer
Private con As OleDbConnection
Dim instance As OleDbException
Dim valor As OleDbErrorCollection
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\transporte.mdb;Persist Security Info=False;"
Dim sql As String = "SELECT * FROM movimientos"
con = New OleDbConnection(sCnn)
con.Open()
da = New OleDbDataAdapter(sql, con) 'conexión a access
Dim fun As New OleDbCommandBuilder(da)
fun.QuotePrefix = "["
fun.QuoteSuffix = "]"
da.UpdateCommand = fun.GetUpdateCommand
da.InsertCommand = fun.GetInsertCommand
da.DeleteCommand = fun.GetDeleteCommand
dt = New DataTable 'tabla a rellenar
da.Fill(dt)
End Sub
e insertaría supestamente registros con este:
Código:
Dim origen As String
Dim destino As String
Dim nuevo As DataRow = dt.NewRow()
nuevo("Número de movimiento") = num_mov.Text
nuevo("Fecha") = fecha.Text
nuevo("Cliente") = cliente.Text
nuevo("Origen") = origen
nuevo("Destino") = destino
nuevo("Kilómetros") = km.Text
nuevo("Valor") = value.Text
nuevo("ID conductor") = id.Text
dt.Rows.Add(nuevo)
da.Update(dt)
pero al generarlo me dice en da.update(dt) que hubo una oledbexception
¿Qué hago?
gracias
Hola,
¿y porqué no haces el update directamente en la tabla a través del objeto command? Ahorrarías código y es mas sencillo.
Código:
Dim cmd As New SqlCommand()
cmd.Connection = con
con.Open()
cmd.CommandText = "UPDATE Movimientos SET [Numero de movimiento] = '" & Num_mov.Text & "', " & _
"Fecha = '" & Fecha.Text & "', " & _
"Cliente = '" & Cliente.Text & "', " & _
"Origen= '" & Origen & "', Destino = '" & Destino & "', " & _
"Kilometros = '" & Km.Text & "', Valor = '" & Valuel.Text & "', " & _
"[Id Conductor] = '" & id.Text & "'"
cmd.ExecuteNonQuery()
Nota: El código anterior lo he puesto de memoria, sin hacer comprobación, es posible que me haya equivocado en algo, pero la idea es ésa.