这是我的代码。
Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\speednet\speed_net.accdb")
Dim com As New OleDbCommand
con.Open()
com.Connection = con
com.CommandText = "insert into users (name,username,password,user_type) values ('" & name1.Text & "' ,'" & username.Text & "' ,'" & password.Text & "','" & account_type.Text & "')"
com.ExecuteNonQuery()
错误:
插入语句中的语法错误...
找不到问题。
答案 0 :(得分:2)
Password is a reserved keyword访问权限。你需要围绕这个词的方括号 但是您的查询也应该被修改为使用parameter approach而不是字符串连接,否则可能会出现更危险的情况。阅读Sql Injection以及如果您的一个连接字符串包含单引号会发生什么。
所以
Using con = New OleDbConnection("....")
Using com = New OleDbCommand("insert into users " & _
"(name,username,[password],user_type) " & _
"values (@name, @uname,@pass,@acctype)", con)
con.Open()
com.Parameters.AddWithValue("@name", name1.Text)
com.Parameters.AddWithValue("@uname", username.Text)
com.Parameters.AddWithValue("@pass", password.Text)
com.Parameters.AddWithValue("@acctype", account_type.Text)
com.ExecuteNonQuery()
End Using
End Using