ASP.NET - MS-ACCESS - VB.NET - SQL语句错误
问题描述:
任何人都可以告诉我这段代码有什么问题吗?它给我一个错误在cmd.ExecuteNonQuery()
ASP.NET - MS-ACCESS - VB.NET - SQL语句错误
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;")
Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO [User] (CustomerName, CustomerSurname, Address, Country, TelNo, Username, Password, UserTypeID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", conn)
If txtPass.Text = txtCPass.Text Then
conn.Open()
cmd.Parameters.Add("@CustomerName", OleDbType.VarChar, 255).Value = txtName.Text
cmd.Parameters.Add("@CustomerSurname", 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("@TelNo", OleDbType.Integer).Value = txtTelNo.Text
cmd.Parameters.Add("@Username", OleDbType.VarChar, 255).Value = txtUsername.Text
cmd.Parameters.Add("@Password", OleDbType.VarChar, 255).Value = txtPass.Text
cmd.Parameters.Add("@UserTypeID", OleDbType.Integer, 255).Value = "1"
cmd.ExecuteNonQuery()
conn.Close()
lblAccount.Visible = True
End If
End Sub
末级
答
编辑:这可能是username
和password
是reserved keywords in Access。
尝试包围他们用括号:
..., TelNo, [Username], [Password], ...
什么是 “_an错误_”? – 2012-03-25 14:11:33
它告诉我在“INSERT INTO”语句中有错误。但我之前尝试过,它正在工作。我所做的只是改变数据库中的列名,然后在asp.net中。 – Brian 2012-03-25 14:16:04
你可以手动运行命令吗?是否存在约束问题或列必须是唯一的。 – rerun 2012-03-25 14:17:49