2012-03-25 74 views
0

任何人都可以告诉我这段代码有什么问题吗?它给我一个错误在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 

末级

+1

什么是 “_an错误_”? – 2012-03-25 14:11:33

+0

它告诉我在“INSERT INTO”语句中有错误。但我之前尝试过,它正在工作。我所做的只是改变数据库中的列名,然后在asp.net中。 – Brian 2012-03-25 14:16:04

+0

你可以手动运行命令吗?是否存在约束问题或列必须是唯一的。 – rerun 2012-03-25 14:17:49

回答

1

编辑:这可能是usernamepasswordreserved keywords in Access

尝试包围他们用括号:

..., TelNo, [Username], [Password], ... 
+0

这没有奏效! – Brian 2012-03-25 14:20:00

+0

啊,谢谢Andomar ..已经忘记了! – Brian 2012-03-25 14:27:34