Sql INTO 语句语法错误 VB.net OleDB
Sql syntax error with INTO statement VB.net OleDB
刚刚编辑了这个子例程,所以我现在可以保存语言和字体的值。
它以前工作得很好,但现在它给我一个 sql 字符串的语法错误。
Sub insertuservalues(conn, a, b, c, d, e, f)
Dim sql As String = "INSERT INTO tblUserDetails(Name,Username,[Password],Email,Language,Font) VALUES (@name, @username, @password, @email, @language, @font)"
Using connection As New OleDbConnection(conn)
Using command As New OleDbCommand(sql, connection)
connection.Open()
command.Parameters.Add("@name", OleDbType.VarWChar).Value = a
command.Parameters.Add("@username", OleDbType.VarWChar).Value = b
command.Parameters.Add("@password", OleDbType.VarWChar).Value = c
command.Parameters.Add("@email", OleDbType.VarWChar).Value = d
command.Parameters.Add("@language", OleDbType.VarWChar).Value = e
command.Parameters.Add("@font", OleDbType.VarWChar).Value = f
command.ExecuteNonQuery()
connection.Close()
End Using
End Using
End Sub
字段 Language
和 Font
已添加到 table,并且所有传递的变量都具有有效值。为什么会这样?
这是SQL服务器吗?您应该为 DBMS 的问题添加一个标签。
但是既然你提到问题是在添加这两列之后开始的,那么列名很可能就是问题所在。
在 SQL 服务器中 Language
是一个 保留关键字 。请参阅列表:Reserved Keywords (Transact-SQL)。命名对象时避免保留关键字(或过于通用的关键字)。但是,如果您将列名称括在方括号之间(例如 [Password]
),那应该可以。
我宁愿使用 user_language
、user_password
等名称(password
应该是 Mysql 中的保留关键字)。
刚刚编辑了这个子例程,所以我现在可以保存语言和字体的值。
它以前工作得很好,但现在它给我一个 sql 字符串的语法错误。
Sub insertuservalues(conn, a, b, c, d, e, f)
Dim sql As String = "INSERT INTO tblUserDetails(Name,Username,[Password],Email,Language,Font) VALUES (@name, @username, @password, @email, @language, @font)"
Using connection As New OleDbConnection(conn)
Using command As New OleDbCommand(sql, connection)
connection.Open()
command.Parameters.Add("@name", OleDbType.VarWChar).Value = a
command.Parameters.Add("@username", OleDbType.VarWChar).Value = b
command.Parameters.Add("@password", OleDbType.VarWChar).Value = c
command.Parameters.Add("@email", OleDbType.VarWChar).Value = d
command.Parameters.Add("@language", OleDbType.VarWChar).Value = e
command.Parameters.Add("@font", OleDbType.VarWChar).Value = f
command.ExecuteNonQuery()
connection.Close()
End Using
End Using
End Sub
字段 Language
和 Font
已添加到 table,并且所有传递的变量都具有有效值。为什么会这样?
这是SQL服务器吗?您应该为 DBMS 的问题添加一个标签。 但是既然你提到问题是在添加这两列之后开始的,那么列名很可能就是问题所在。
在 SQL 服务器中 Language
是一个 保留关键字 。请参阅列表:Reserved Keywords (Transact-SQL)。命名对象时避免保留关键字(或过于通用的关键字)。但是,如果您将列名称括在方括号之间(例如 [Password]
),那应该可以。
我宁愿使用 user_language
、user_password
等名称(password
应该是 Mysql 中的保留关键字)。