将数据从 VB.NET 插入 MS Access:INSERT INTO 语句中的语法错误 [英] Inserting data from VB.NET to MS Access: Syntax error in INSERT INTO statement
问题描述
我正在使用 Microsoft Visual Studio 2013,我正在尝试使用 VB.NET 为我的帐户数据库制作注册表.到目前为止,这是我的代码:
I'm using Microsoft Visual Studio 2013 and im trying to make a registration form for my account database using VB.NET. This is my code so far:
Private Sub btnRegistery_Click(sender As Object, e As EventArgs) Handles btnRegistery.Click
Dim usernme, passwrd As String
usernme = txtUsernm.Text
passwrd = txtpasswrd.Text
Dim myconnection As OleDbConnection
Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsershasanDocumentsVisual Studio 2012ProjectshasanLogin_Info.accdb"
myconnection = New OleDbConnection(constring)
myconnection.Open()
Dim sqlQry As String
sqlQry = "INSERT INTO tbl_user(username, password) VALUES(usernme , passwrd)"
Dim cmd As New OleDbCommand(sqlQry, myconnection)
cmd.ExecuteNonQuery()
End Sub
代码编译得很好,但是当我尝试注册任何新信息时,我收到以下消息:
The code compiles fine, but when i try to register any new information i get the following message:
A first chance exception of type 'System.Data.OleDb.OleDbException'
occurred in System.Data.dll
Additional information: Syntax error in INSERT INTO statement.
If there is a handler for this exception, the program may be safely continued.
这个问题的解决方案和原因是什么?
What could be a solution and cause for this problem?
推荐答案
您的查询似乎有误:... VALUES(usernme, passwrd)...
--这里的 usernme
和 passwrd
不是数据库变量,而是查询中的纯文本.
Your query seems wrong: ... VALUES(usernme, passwrd)...
--
Here the usernme
and passwrd
are not variables for database, but just plain text in the query.
使用参数,像这样:
Dim usernme, passwrd As String
usernme = txtUsernm.Text
passwrd = txtpasswrd.Text
Dim constring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsershasanDocumentsVisual Studio 2012ProjectshasanLogin_Info.accdb"
Using myconnection As New OleDbConnection(constring)
myconnection.Open()
Dim sqlQry As String = "INSERT INTO [tbl_user] ([username], [password]) VALUES (@usernme, @passwrd)"
Using cmd As New OleDbCommand(sqlQry, myconnection)
cmd.Parameters.AddWithValue("@usernme", usernme)
cmd.Parameters.AddWithValue("@passwrd", passwrd)
cmd.ExecuteNonQuery()
End using
End using
这篇关于将数据从 VB.NET 插入 MS Access:INSERT INTO 语句中的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!