2012-03-25 75 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