2013-05-17 59 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不用客气';)' –

相关问题