语法错误在INSERT到用户表,在MS Access 2003 [英] Syntax Error on INSERT into User Table in MS Access 2003
问题描述
使用VB.NET与ASP.NET和和MS-Access 2003中的数据,我想从一个Web表单中db.mdb的表称为用户输入数据。
Using VB.NET with ASP.NET and and ms-access 2003 data, I'm trying to input data from a web form to the a table in db.mdb called 'USER'.
我想这code:
Protected Sub btnCreateAccount_Click(sender As Object, e As System.EventArgs) Handles btnCreateAccount.Click
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Brian\Documents\Visual Studio 2010\WebSites\WebSite3\db.mdb;User Id=admin;Password=;")
Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO USER (Name, Surname, Username, Country, TelNo, Password, Address) VALUES (?, ?, ?, ?, ?, ?, ?)", conn)
If txtPass.Text = txtCPass.Text Then
cmd.Parameters.Add("@Name", OleDbType.VarChar, 255).Value = txtName.Text
cmd.Parameters.Add("@Surame", OleDbType.VarChar, 255).Value = txtSurname.Text
cmd.Parameters.Add("@Address", OleDbType.VarChar, 255).Value = txtAddress.Text
cmd.Parameters.Add("@Country", OleDbType.VarChar, 255).Value = txtCountry.Text
cmd.Parameters.Add("@Username", OleDbType.VarChar, 255).Value = txtUsername.Text
cmd.Parameters.Add("@Password", OleDbType.VarChar, 255).Value = txtPass.Text
cmd.Parameters.Add("@TelNo", OleDbType.Integer).Value = txtTelNo.Text
Try
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Catch ex As OdbcException
Throw ex
Finally
conn.Close()
lblAccount.Visible = True
End Try
End If
End Sub
但它的返回我的错误消息:
But it's returning me an error message:
为什么这个问题可能是任何建议引起?
Any suggestions to why the problem might be cause?
推荐答案
用户
和密码
是保留关键字。更改名字,或者在查询中使用周围的名称方括号
User
and Password
are reserved keywords. Change the names, or use square brackets around the names in the query:
Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO [USER] (Name, Surname, Username, Country, TelNo, [Password], Address) VALUES (?, ?, ?, ?, ?, ?, ?)", conn)
然后,你会遇到那么下一个错误:由于参数未在查询中指定的参数
集合中的参数对象已经在被添加相同的顺序,因为它们是在查询中使用。
Then, for then next error that you will encounter: As the parameters are not named in the query, the parameter objects in the Parameters
collection has to be added in the same order as they are used in the query.
这篇关于语法错误在INSERT到用户表,在MS Access 2003的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!