Foros del Web » Programación para mayores de 30 ;) » .NET »

error en update con vb.net y access

Estas en el tema de error en update con vb.net y access en el foro de .NET en Foros del Web. Hola, soy nuevo en los foros y me he trabado en una aplicaion de escritorio que estoy haciendo en VB.net con conecciona a access, en ...
  #1 (permalink)  
Antiguo 18/07/2012, 08:52
 
Fecha de Ingreso: julio-2012
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta error en update con vb.net y access

Hola, soy nuevo en los foros y me he trabado en una aplicaion de escritorio que estoy haciendo en VB.net con conecciona a access, en verdad, solo eso me falta, ya que actualiza, graba y todo, pero al momento de actualizar los campos local y observacion no rellenan y dan un error de sintaxis.

El codigo es como sigue:

Código:
Dim midni, minombre2, miapellido2, mifotocheck2, mitarjetap2, milocal, micontrato2, misector2, miservicio2, mijefe2, miobs As String
        midni = dni.Text
        minombre2 = nombres2.Text
        miapellido2 = apellidos2.Text
        mifotocheck2 = ftc2.Text
        mitarjetap2 = tp2.Text
        milocal = txt_local.Text
        micontrato2 = Convert.ToString(contrato2.SelectedItem)
        misector2 = Convert.ToString(sector2.SelectedItem)
        miservicio2 = Convert.ToString(servicio2.SelectedItem)
        mijefe2 = Convert.ToString(jefe2.SelectedItem)
        miobs = "1"

        Dim consulta, completarAct As String
        consulta = "update personal set nombres2='" & minombre2 & "', apellidos2='" & miapellido2 & "', fotocheck2='" + mifotocheck2 + "', tarjetap2='" + mitarjetap2 + "', contrato2='" + micontrato2 + "', sector2='" + misector2 + "', servicio2='" + miservicio2 + "', jefe2='" + mijefe2 + "' where (dni='" + midni + "')"
        completarAct = "update personal set local='" + milocal + "' where (dni='" + midni + "')"

        Using cnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\basededatos\bd.mdb")
            Dim cmd As OleDbCommand = cnn.CreateCommand()
            Dim cmd2 As OleDbCommand = cnn.CreateCommand()
            cmd.CommandText = consulta
            cmd2.CommandText = completarAct
            cnn.Open()
            cmd.ExecuteNonQuery()
            cmd2.ExecuteNonQuery()
        End Using
Agradeceria mucho su ayuda ya que me bota un error de sintaxis en la sentencia update del cmd2.

Última edición por edersalas; 18/07/2012 a las 10:48 Razón: Error de tipeo
  #2 (permalink)  
Antiguo 18/07/2012, 12:16
 
Fecha de Ingreso: julio-2012
Ubicación: Distrito Federal
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Sonrisa Respuesta: error en update con vb.net y access

HOLA YO TAMBIEN SOY NUEVO PERO LO UNICO QUE TE PUEDO DECIR ES QUE NO ES MUY RECOMENDABLE CONCATENAR EL STRING CON TU OBJETO, YO TE RECOMENDARIA UTILIZAR PARAMETROS Y APLICANDOLO A TU PROBLEMA SERIA ALGO PARECIDO A LO SIGUIENTE:

Código:
 Public Sub update_datos()
        Dim midni, minombre2, miapellido2, mifotocheck2, mitarjetap2, milocal, micontrato2, misector2, miservicio2, mijefe2, miobs As String
        midni = dni.Text
        minombre2 = nombres2.Text
        miapellido2 = apellidos2.Text
        mifotocheck2 = ftc2.Text
        mitarjetap2 = tp2.Text
        milocal = txt_local.Text
        micontrato2 = Convert.ToString(contrato2.SelectedItem)
        misector2 = Convert.ToString(sector2.SelectedItem)
        miservicio2 = Convert.ToString(servicio2.SelectedItem)
        mijefe2 = Convert.ToString(jefe2.SelectedItem)
        miobs = "1"

        Dim consulta, completarAct As String
        consulta = "UPDATE personal SET nombre2=@minombre,apellidos2=@mapillidos,fotocheck2=@fotocheck2,tarjetap2=@mtarjeta,contrato2=@mcontrato2,sector2=@msector2,servicio=@mservicio2,jefe2=@mjefe2 WHERE dni=@mdni"
        completarAct = "UPDATE personal SET local=@mlocal WHERE dni=@mdni"

        Using cnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\basededatos\bd.mdb")
            Dim cmd As OleDbCommand = cnn.CreateCommand()
            Dim cmd2 As OleDbCommand = cnn.CreateCommand
            With cmd
                .Connection = cnn
                .CommandText = consulta
                .Parameters.AddWithValue("@mnombre", minombre2)
                .Parameters.AddWithValue("@mapellidos", miapellido2)
                .Parameters.AddWithValue("@mfotocheck2", mifotocheck2)
                .Parameters.AddWithValue("@mtarjeta", mitarjetap2)
                .Parameters.AddWithValue("@mcontrato2", micontrato2)
                .Parameters.AddWithValue("@msector2", misector2)
                .Parameters.AddWithValue("@mservicio2", miservicio2)
                .Parameters.AddWithValue("@mjefe2", mijefe2)
                .Parameters.AddWithValue("@mdni", midni)
            End With

            With cmd2
                .Connection = cnn
                .CommandText = completarAct
                .Parameters.AddWithValue("@mlocal", milocal)
                .Parameters.AddWithValue("@mdni", midni)
            End With
            Try
                cnn.Open()
                cmd.ExecuteNonQuery()
                cmd2.ExecuteNonQuery()
                MessageBox.Show("REGISTRO ACTUALIZADO CORRECTAMENTE", "REGISTRO ACTUALIZADO", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Catch mfalla As OleDbException 'tienes que controlar exepciones
                MsgBox(mfalla.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "ERROR EN UPDATE")
            End Try
        End Using
    End Sub
ALGO MAS QUE ME GUSTARIA COMENTARTE ES QUE DEBERIAS DE CONTROLAR LAS EXEPCIONES CUANDO HACES EL EXECUTENONQUERY, BUENO ESO ES TODO ESPERO Y TE HAYA AYUDADO AUNQUE SEA UN POCO

Etiquetas: access, oledb, update, vbnet
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 10:54.