Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ayuda con update!!!urgente

Estas en el tema de ayuda con update!!!urgente en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/07/2008, 20:08
 
Fecha de Ingreso: junio-2008
Mensajes: 15
Antigüedad: 15 años, 10 meses
Puntos: 0
ayuda con update!!!urgente

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
  #2 (permalink)  
Antiguo 29/07/2008, 02:55
Avatar de Piruleta  
Fecha de Ingreso: enero-2008
Ubicación: En Madrid
Mensajes: 36
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: ayuda con update!!!urgente

Intenta hacer primero el Add y luego poner los datos...
  #3 (permalink)  
Antiguo 29/07/2008, 07:47
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ayuda con update!!!urgente

Cita:
Iniciado por federed Ver Mensaje
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.

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:57.