[英]Error making an insert to mysql from VB.net
This was working ok but suddenly it stopped to work and started to give me this error, either inserting new data or updating.这工作正常,但突然停止工作并开始给我这个错误,无论是插入新数据还是更新。 I must say that I know is bad to concatenate but our tachers obligates us do it this way.
我必须说,我知道连接不好,但我们的老师要求我们这样做。
I tried the same query in navicat and it works, but, when i put it in VB.net it start to give me this error.我在 navicat 中尝试了相同的查询并且它有效,但是,当我将它放入 VB.net 时,它开始给我这个错误。
Query code:查询代码:
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')
Code in visual:可视化代码:
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()
(now insert) (现在插入)
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
And in both when I press the button it gives me the following errors:在这两种情况下,当我按下按钮时,都会出现以下错误:
Updating Unknown column 'i' in 'field list'
更新“字段列表”中的未知列“i”
Inserting..."for the right syntax to use near')values(X,XXXXXXXX, 'XXXX', 'XXXX', XXXXXXXX, 'XXXXXX', 'XXXX-XX-XX','c' at line 1 (being X any value possible)在第 1 行插入..."以获得正确的语法以使用 near')values(X,XXXXXXXX, 'XXXX', 'XXXX', XXXXXXXX, 'XXXXXX', 'XXXX-XX-XX','c' X 任何可能的值)
Table "Personal" desing:表“个人”设计:
You sql statement is wrong.你 sql 语句是错误的。 At the end of the columns list you have an comma too much
在列列表的末尾,您的逗号太多
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', )"
Use in Vb net also Prepared statement Like在 Vb net 中也使用 Prepared statement Like
cmd.Connection = conn
cmd.CommandText = "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,.....)"
cmd.Prepare()
cmd.Parameters.AddWithValue("@adduser_rol", adduser_rol)
cmd.Parameters.AddWithValue("@AddUser_txtDocumento", AddUser_txtDocumento.Text)
...
cmd.ExecuteNonQuery()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.