Ошибка при вставке в MySQL из VB.net - PullRequest
0 голосов
/ 11 ноября 2019

Это работало нормально, но вдруг оно перестало работать и начало выдавать мне эту ошибку, либо вставляя новые данные, либо обновляя. Я должен сказать, что я знаю, что плохо конкатенировать, но наши тахеры обязывают нас делать это таким образом.

Я попробовал тот же запрос в navicat, и он работает, но, когда я помещаю его в VB.net, он начинаетдай мне эту ошибку.

Код запроса:

UPDATE personal SET nombre = '" & ModUser_txtNombre.Text & "', 2nombre = '" & ModUser_txt2Nombre.Text & "', apellido = '" & ModUser_txtApellido.Text & "', 2apellido = '" & ModUser_txt2apellido.Text & "', sexo = '" & ModUser_cbSexo.Text & "', f_nac = '" & ModUser_dateFNacimiento.Text & "', calle = '" & ModUser_txtDirCalle.Text & "', numero = " & ModUser_txtDirNumero.Text & ", estado_civil = '" & ModUser_cbEstCivil.Text & "', email = '" & ModUser_txtEmail.Text & "', hijos = '" & ModUser_txtHijos.Text & "', tel_celular = " & ModUser_txtCelular.Text & ", tel_fijo = " & ModUser_txtFijo.Text & ", f_ingreso = '" & ModUser_dateFIngreso.Text & "', cargo = " & cargo.ToString & ", grado = " & ModUser_cbGrado.Text & ", departamento = " & departamento.ToString & ", email_empr = '" & ModUser_txtMailEmpresarial.Text & "', tlf_empr = " & ModUser_txtTlfEmpresarial.Text & ", rol = " & rol.ToString & " WHERE doc = " & List_txtBuscar.Text & "(now insert)    

    insert into Personal (rol, doc, nombre, apellido, passwd, sexo, f_nac, 
                          estado_civil, f_ingreso, cargo, grado, dpto, email,
                           email_empr, tlf_empr, calle, numero, 2nombre,
                           2apellido, activo,) 
values(" & adduser_rol & ", " & AddUser_txtDocumento.Text & ", '" 
  & AddUser_txtNombre.Text & "', '" & AddUser_txtApellido.Text & "', " 
  & AddUser_txtContraseña.Text & ", '" & AddUser_cbSexo.Text & "', '" 
  & AddUser_dateFNacimiento.Text & "', '" & AddUser_cbEstCivil.Text & "', '" 
  & AddUser_dateFIngreso.Text & "', '" & AddUser_txtCargo.Text & "', " 
  & AddUser_cbGrado.Text & ", '" & AddUser_txtDepartamento.Text & "', '" 
  & AddUser_txtEmail.Text & "', '" & AddUser_txtMailEmpresarial.Text & "', " 
  & AddUser_txtTlfEmpresarial.Text & ", '" & AddUser_txtDirCalle.Text & "', " 
  & AddUser_txtDirNumero.Text & ", '" & 
     AddUser_txt2Nombre.Text & "', '" & AddUser_txt2apellido.Text & "', 's')

Код в визуале:

   cnn.Open()
        Dim Query As String
        Query = "UPDATE personal SET nombre = '" & ModUser_txtNombre.Text & "', 2nombre = '" & ModUser_txt2Nombre.Text & "', apellido = '" & ModUser_txtApellido.Text & "', 2apellido = '" & ModUser_txt2apellido.Text & "', sexo = '" & ModUser_cbSexo.Text & "', f_nac = '" & ModUser_dateFNacimiento.Text & "', calle = '" & ModUser_txtDirCalle.Text & "', numero = " & ModUser_txtDirNumero.Text & ", estado_civil = '" & ModUser_cbEstCivil.Text & "', email = '" & ModUser_txtEmail.Text & "', hijos = '" & ModUser_txtHijos.Text & "', tel_celular = " & ModUser_txtCelular.Text & ", tel_fijo = " & ModUser_txtFijo.Text & ", f_ingreso = '" & ModUser_dateFIngreso.Text & "', cargo = " & cargo.ToString & ", grado = " & ModUser_cbGrado.Text & ", departamento = " & departamento.ToString & ", email_empr = '" & ModUser_txtMailEmpresarial.Text & "', tlf_empr = " & ModUser_txtTlfEmpresarial.Text & ", rol = " & rol.ToString & " WHERE doc = " & List_txtBuscar.Text & ""
        Dim cmd As New MySqlCommand(Query, cnn)
        rdr = cmd.ExecuteReader
        cnn.Close()

(теперь вставка)

Dim adduser_rol As Integer

        If AddUser_rbAdmin.Checked Then
            adduser_rol = 1
        ElseIf AddUser_rbUsuario.Checked Then
            adduser_rol = 2
        Else
            MsgBox("Debe seleccionar si el nuevo empleado es usuario o administrador.")
        End If
        Dim cnn As New MySqlConnection
        cnn.ConnectionString = ("data source=localhost;user id=root; password='1234';database=tax")
        Try
            Dim Query As String
            Query = "insert into Personal (rol, doc, nombre, apellido, passwd, sexo, f_nac, estado_civil, f_ingreso, cargo, grado, dpto, email, email_empr, tlf_empr, calle, numero, 2nombre, 2apellido, activo,) values(" & adduser_rol & ", " & AddUser_txtDocumento.Text & ", '" & AddUser_txtNombre.Text & "', '" & AddUser_txtApellido.Text & "', " & AddUser_txtContraseña.Text & ", '" & AddUser_cbSexo.Text & "', '" & AddUser_dateFNacimiento.Text & "', '" & AddUser_cbEstCivil.Text & "', '" & AddUser_dateFIngreso.Text & "', '" & AddUser_txtCargo.Text & "', " & AddUser_cbGrado.Text & ", '" & AddUser_txtDepartamento.Text & "', '" & AddUser_txtEmail.Text & "', '" & AddUser_txtMailEmpresarial.Text & "', " & AddUser_txtTlfEmpresarial.Text & ", '" & AddUser_txtDirCalle.Text & "', " & AddUser_txtDirNumero.Text & ", '" & AddUser_txt2Nombre.Text & "', '" & AddUser_txt2apellido.Text & "', 's', )"
            cnn.Open()
            Dim cmd As New MySqlCommand
            cmd = New MySqlCommand(Query, cnn)
            cmd.ExecuteNonQuery()
            MessageBox.Show("Usuario guardado")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

Ив обоих случаях при нажатии кнопки появляются следующие ошибки:

Обновление неизвестного столбца 'i' в 'списке полей'

Вставка ... "дляправильный синтаксис для использования близких ') значений (X, XXXXXXXX,' XXXX ',' XXXX ', XXXXXXXX,' XXXXXX ',' XXXX-XX-XX ',' c 'в строке 1 (где X любое возможное значение)

Таблица «Персональный» дизайн:

1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...