2013-05-17 58 views
1

我recieving語法錯誤INSERT INTO語句中。我正在使用Microsoft Access數據庫。這裏是代碼示例:在數據庫ASP.NET的Microsoft Access數據庫插入錯誤

protected void Button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("measurmentdb.mdb")); 
     OleDbCommand cmd = new OleDbCommand("insert into tbl_Users(Username,Name,Surname,Password,Email,Phonenumber,CV)values(@un,@name,@sna,@pw,@em,@pn,@cv)", con); 
     cmd.Parameters.AddWithValue("@un", txtusername.Text); 
     cmd.Parameters.AddWithValue("@name", txtname.Text); 
     cmd.Parameters.AddWithValue("@sna", txtsurname.Text); 
     cmd.Parameters.AddWithValue("@pw", txtpassword.Text); 
     cmd.Parameters.AddWithValue("@em", txtemail.Text); 
     cmd.Parameters.AddWithValue("@pn", txtphone.Text); 
     cmd.Parameters.AddWithValue("@cv", txtcv.Text); 
     con.Open(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
    } 
    catch (Exception ex) 
    { 

     throw ex; 
    } 
} 

一切都是以文本格式:

tbl_Users: 
Username 
Name 
Surname 
Password 
Email 
Phonenumber 
CV 

我無法弄清楚什麼是錯的。我會很感激你的幫助。

回答

3

NAMEPASSWORD是在MS Access上的reserved words

使用它們用方括號像[NAME][PASSWORD]

OleDbCommand cmd = new OleDbCommand("insert into tbl_Users(Username,[Name],Surname,[Password],Email,Phonenumber,CV)values(@un,@name,@sna,@pw,@em,@pn,@cv)", con); 

如果保留的字已被使用,您可以通過 避免出現錯誤消息,圍繞着括號中的字的每次出現([ ])。 但是, 最佳解決方案是將名稱更改爲非保留字。

+0

謝謝,幫了很多。 – Alasse

+0

@Alasse不用客氣';)' –

相關問題