2013-07-12 71 views
1

這裏是我的查詢:我的MS Access更新查詢有什麼問題?

string Select = "Update DC set Password = '" + txtPass.Text + "' WHERE ID ="+Convert.ToInt32(cbxDocs.SelectedIndex + 1); 
con = new OleDbConnection(); 
this.readconfile = new ReadConfigFile(); 
con.ConnectionString = this.readconfile.ConfigString(ConfigFiles.ProjectConfigFile); 
con.Open(); 
cmd = new OleDbCommand(Select, con); 
cmd.Connection = con; 
cmd.ExecuteNonQuery(); 
con.Close(); 

我不知道什麼是錯誤的,但它給我的錯誤消息「語法錯誤在UPDATE語句」。 我有兩個字段在我的表'DC'ID和密碼,沒有別的。

+0

使用佔位符。這些清理查詢並避免可能導致的細微錯誤 - 比如包含'''的密碼。另外,確保「密碼」或「ID」不是保留字。 – user2246674

+0

謝謝,幫助 –

回答

4

PASSWORDis reserve word它括在方括號像[Password],所以你的查詢應該這樣開始:

"Update DC set [Password].... 

考慮使用參數化查詢,這會節省你Sql Injection

+0

謝謝,幫助 –

0

我覺得你不要」噸需要'在你的查詢和密碼保留在幾乎每個ddb。 你可以使用參數來避免連接+ Ex。

string pass = TxtPass.Text; 
int s = cbxDocs.SelectedIndex+1; 
string Select = "Update DC set Password = @a WHERE ID = @o"; 
OleDbCommand cmd = new OleDbCommand(Select, conn); 
cmd.Paramaters.AddWithValue("@a", pass); 
cmd.Parameters.AddWithValue("@o", s); 
//everything else.... 
+0

感謝您的幫助,這對我來說是新的東西。我會記住。 –