我正在尝试在用户(usuario)表中进行登录,在编译我的代码之后,我得到了这个"警告"在立即窗口中,警告是我的主题,然后在我点击注册按钮后,我收到一条消息,说我有一个错误说:"你的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在附近使用')'在第一行。
我的表usuarios(用户)有以下字段:idUsuario(PK,NOT NULL,AUTOINCREMENT),Cedula(id)varchar(15),name(Nombre)varchar(10),Apellido(姓氏)varchar(10) ),用户名(Usuario)varchar(10),clave(密码)varchar(10)。西班牙语名称显然与表格相同,当我创建clave时,我没有注意到它有一个小写的c,这就是为什么我现在没有把它用大写字母。
以下是代码:
Conexion.bv(模块)
Imports MySql.Data
Imports MySql.Data.Types
Imports MySql.Data.MySqlClient
Module Conexion_Bd
Public coneccion_servidor As String
Public conector As New MySqlConnection
Public Function coneccion_global() As Boolean
'Crea la conexion a la base de datos
Dim estado As Boolean = True
Try
coneccion_servidor = ("server=localhost;database=consultorio;user xxxxx;password=xxxxxx;")
conector = New MySqlConnection(coneccion_servidor)
Catch ex As Exception
MessageBox.Show(ex.Message)
estado = False
End Try
Return estado
End Function
Public Sub cerrar()
conector.Close()
End Sub
结束模块
现在在datos_ingreso Class
Private _columna_idUsuarios As Integer
Private _columna_cedula As String
Private _columna_nombre As String
Private _columna_apellido As String
Private _columna_usuario As String
Private _columna_clave As String
Public Property columna_idUsuarios As Integer
Get
Return _columna_idUsuarios
End Get
Set(ByVal value As Integer)
_columna_idUsuarios = value
End Set
End Property
Public Property columna_cedula As String
Get
Return _columna_cedula
End Get
Set(ByVal value As String)
_columna_cedula = value
End Set
End Property
Public Property columna_nombre As String
Get
Return _columna_nombre
End Get
Set(ByVal value As String)
_columna_nombre = value
End Set
End Property
Public Property columna_apellido As String
Get
Return _columna_apellido
End Get
Set(ByVal value As String)
_columna_apellido = value
End Set
End Property
Public Property columna_usuario As String
Get
Return _columna_usuario
End Get
Set(ByVal value As String)
_columna_usuario = value
End Set
End Property
Public Property columna_clave As String
Get
Return _columna_clave
End Get
Set(ByVal value As String)
_columna_clave = value
End Set
End Property
结束班
最后,在ingreso_uusario_sistema班级
Imports MySql.Data
Imports MySql.Data.Types
Imports MySql.Data.MySqlClient
Public Class ingreso_usuario_sistema
Private adaptador As New MySqlDataAdapter
Public Function ingresarUsuarios(ByVal datos As datos_ingreso) As Boolean
Dim estado As Boolean = True
Try
coneccion_global() 'llama a la funcion para crear la conexion la base de datos
conector.Open() 'Se crea la conexion a la base de datos
'Utiliza las instancias de la clase de datos de ingreso para poder ingresar los registros a los campos
'@nombre_campo hace referencia a lo que tiene cada variable para insertar en la Base de Datos
'@nombre_campo esta hecho en datos_ingresados.
'No se incluye el id
adaptador.InsertCommand = New MySqlCommand("insert into usuarios (Cedula, Nombre, Apellido, Usuario, clave) values (@columna_cedula, @columna_nombre, @columna_apellido, @columna_usuario, @columna_clave,)", conector)
adaptador.InsertCommand.Parameters.Add("@columna_cedula", MySqlDbType.VarChar, 10).Value = datos.columna_cedula
adaptador.InsertCommand.Parameters.Add("@columna_nombre", MySqlDbType.VarChar, 15).Value = datos.columna_nombre
adaptador.InsertCommand.Parameters.Add("@columna_apellido", MySqlDbType.VarChar, 15).Value = datos.columna_apellido
adaptador.InsertCommand.Parameters.Add("@columna_usuario", MySqlDbType.VarChar, 15).Value = datos.columna_usuario
adaptador.InsertCommand.Parameters.Add("@columna_clave", MySqlDbType.VarChar, 15).Value = datos.columna_clave
'conector.Open()
adaptador.InsertCommand.Connection = conector
adaptador.InsertCommand.ExecuteNonQuery()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
estado = False
Finally
cerrar()
End Try
Return estado
End Function
结束班
在注册(注册器)按钮上,我有下一个代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conexion As New ingreso_usuario_sistema
Dim datos As New datos_ingreso
datos.columna_cedula = TextBox1.Text
datos.columna_nombre = TextBox2.Text
datos.columna_apellido = TextBox3.Text
datos.columna_usuario = TextBox4.Text
datos.columna_clave = TextBox5.Text
If conexion.ingresarUsuarios(datos) Then
MsgBox("Entry was successful", MsgBoxStyle.Information, "Registro Usuarios")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox1.Focus()
Else
MsgBox("Entry was not successful", MsgBoxStyle.Information, "Registro Usuarios")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox1.Focus()
End If
End Sub
就像我之前说过的那样,我得到了警告"首先,我从异常中得到sql语法错误,然后我得到条目不成功的消息。
感谢大家的时间。请让我知道我的错误在哪里。
答案 0 :(得分:-1)
我遇到了同样的错误。我通过使用完整的连接字符串解决了它,如下所示:
"server=localhost;user id=root;persistsecurityinfo=True;database=rmsprd_owner;port=3307;password=rmsprd"
因为在安装时我使用的是端口3307而不是3306.请自行检查并相应更改连接字符串。