2012-04-13 217 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

相關問題