Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/07/2012, 12:16
OscarSoftwares
 
Fecha de Ingreso: julio-2012
Ubicación: Distrito Federal
Mensajes: 7
Antigüedad: 11 años, 10 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