2012-04-13 192 views
1

当我连接访问数据库时出现问题,然后在INSERT INTO语句中出现错误语法错误。和我的代码是:INSERT INTO语句中的语法错误

string str = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Users/Geeta/Desktop/Database2.accdb;Persist Security Info=False;"); 
     OleDbConnection conn = new OleDbConnection(str); 
     conn.Open(); 
     string query = "insert into data (FirstName,Email,Password,Address) values ('" + 
      txt_fstname.Text + "','" + txt_email.Text + "', '" + 
      txt_pass.Text + "', '" + txt_add.Text + "')"; 
     OleDbCommand cmd = new OleDbCommand(query,conn); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
     Response.Redirect("Default.aspx"); 

PLZ建议我。

“谢谢”

+0

您可以加入错误信息?以及在运行时生成的查询字符串。也许在文本框中有一些特殊字符。 – 2012-04-13 08:09:18

+3

请不要创建查询手动追加字符串,整数,日期到命令:使用'参数',你的生活会更容易! – Marco 2012-04-13 08:10:50

+2

[SQL注入](http://xkcd.com/327)任何人? – 2012-04-13 08:14:55

回答

3

密码采用的是Jet/ACE SQL一个reserved word所以你必须用方括号括起来:

string query = "insert into data (FirstName,Email,[Password],Address) values ('" + 
+0

谢谢...帮助我。 – 2012-04-13 08:46:31

相关问题