ASP.NET - MS-ACCESS - VB.NET - SQL 语句错误
Posted
技术标签:
【中文标题】ASP.NET - MS-ACCESS - VB.NET - SQL 语句错误【英文标题】:ASP.NET - MS-ACCESS - VB.NET - SQL STATEMENT ERROR 【发布时间】:2012-03-25 14:09:53 【问题描述】:谁能告诉我这段代码有什么问题?它在cmd.ExecuteNonQuery()
中给了我一个错误
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
结束类
【问题讨论】:
它告诉我“INSERT INTO”语句中有错误。但我之前尝试过,它正在工作。我所做的只是在 db 中更改列的名称,然后在 asp.net 中更改 你能手动运行命令吗?是否存在约束问题或必须唯一的列。 有一个'UserID',它是通过 ms-access db 自动编号的 【参考方案1】:编辑:username
和 password
可能是 reserved keywords in Access。
尝试用括号括起来:
..., TelNo, [Username], [Password], ...
【讨论】:
以上是关于ASP.NET - MS-ACCESS - VB.NET - SQL 语句错误的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET - MS-ACCESS - VB.NET - SQL 语句错误
ASP.NET - VB.NET - 更新 MS_Access 表
如何使用 asp.net 从客户端读取 ms-access 数据库文件