2012-12-24 80 views
1
String sql = `"UPDATE User Set address = '" + address +"' 
and userType '" + userType +"' WHERE useridNric = '" + id + "'";` 

//這是行不通的(2字段).ODBC狀態,它有一個缺少運營商。SQL更新(不能更新超過1個字段)

String sql = "UPDATE User Set address = '" + address +"' WHERE useridNric = '" + id + "'"; //但是這是工作(1場)

希望你們能幫助用引號2 fields.Been努力發揮,但工作不

+4

構建sql命令時,不應該使用字符串連接。改爲使用參數。 – iamkrillin

+0

好的感謝您的幫助 – Drake

回答

-1

你不需要等號的用戶類型後

String sql = "UPDATE User Set address = '" + address +"', userType = '" + userType +"' WHERE useridNric = '" + id + "'"; 
+0

Jonathan de M.您的sql語句是正確的。我的數據庫更新了正確的值。非常感謝您的幫助。 – Drake

+0

爲什麼我被低估? –

2

你應該用逗號代替AND,到單獨的字段分配,否則這是一個語法錯誤(或邏輯錯誤,如果分配可以被解釋爲對比):

String sql = "UPDATE User Set address = '" + address + 
      "', userType ='" + userType + 
      "' WHERE useridNric = '" + id + "'"; // <<== Rewrite with parameters 

不用說,你應該使用參數化的SQL,避免SQL注入攻擊的可能性:

String sql = "UPDATE User Set address = @address, userType = @userType "+ 
      "WHERE useridNric = @id"; 
+0

感謝您的幫助 – Drake

0

當更新多個字段,用逗號分隔:

String sql = "UPDATE User Set address = '" + address + 
         "', userType ='" + userType + 
      "' WHERE useridNric = '" + id + "'"; 
+0

它聲明在Update語句中有語法錯誤。謝謝你的幫助,雖然 – Drake

+0

我的答案在userType編輯後缺少等號。 – ederbf

-1

使用,分隔在如下更新查詢列:

String sql = "UPDATE User Set address = '" + address + 
       "' , userType '" + userType + 
       "' WHERE useridNric = '" + id + "'"; 
+0

@Downvoter:留下一些評論以瞭解問題。 –