2012-03-24 101 views
1

使用VB.NET与ASP.NET和MS-Access 2003数据,我试图从Web表单输入数据到db.mdb中的一个表中调用'用户'。INSERT到MS Access 2003中的用户表中的语法错误

我试过这段代码:

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 

但它返回我的错误消息:

enter image description here

为什么这个问题可能会导致有什么建议?

+0

强烈建议您摆脱'Catch'条款。它会扰乱你的堆栈跟踪,使它看起来像'Throw Ex'行是异常的来源。 – 2012-03-24 15:01:49

回答

3

UserPassword是保留关键字。更改名称,或者在查询中使用方括号的名字:

Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO [USER] (Name, Surname, Username, Country, TelNo, [Password], Address) VALUES (?, ?, ?, ?, ?, ?, ?)", conn) 

然后,你会遇到那么下一个错误:由于参数查询中未命名的参数对象Parameters集合必须按照它们在查询中使用的顺序添加。

+0

谢谢!..还有一件事我得到一个错误'''在标准表达式中的数据类型不匹配。“}'cmd.ExecuteNonQuery()'什么可能导致这种情况? – Brian 2012-03-24 15:11:18

+0

@Brian:你检查过参数的顺序是否正确?你是否检查过参数类型对应于数据库类型?您是否验证过电话号码只包含数字,以便可以将其转换为整数? – Guffa 2012-03-24 15:37:14