2012-03-30 69 views
0

我想不通爲什麼這個簡單的更新命令將不起作用:簡單的SqlCECommand更新不起作用。爲什麼?

 private void button1_Click(object sender, EventArgs e) 
    { 
     SqlCeCommand cmd = new SqlCeCommand("UPDATE tbl_Settings set password = '1234')", conn); 
     try 
     { 
      cmd.ExecuteNonQuery(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message.ToString()); 
     } 
    } 

錯誤消息: There was an error parsing the query. [ Token line number = 1,Token line offset = 42,Token in error =) ]

我選擇和插入命令完美的作品:

SqlCeCommand cmd = new SqlCeCommand("SELECT password FROM tbl_Settings", conn); 
     string password = cmd.ExecuteScalar().ToString(); 

回答

6

你已經把一些錯誤的右括號在您的查詢,刪除第一。

寫您的查詢像下面

SqlCeCommand cmd = new SqlCeCommand("UPDATE tbl_Settings set password = @pwd", conn); 
    cmd.Parameters.AddWithValue("@pwd","1234"); 
+0

哦,我...我太盲目..非常感謝你。有趣的是,如果查看相同的代碼太長時間,可能會失明。 順便說一句。什麼使用了Parameters.AddWithValue - 東西? 通過設置密碼='1234',它可以正常工作嗎?祝好 – user1281991 2012-03-30 07:42:04

+0

它被稱爲防止Sql注入。請參閱任何有關Sql Injection的鏈接,您將會了解這一點。 – 2012-03-30 07:43:28

+0

非常感謝。 – user1281991 2012-03-30 07:44:54

4
"UPDATE tbl_Settings set password = '1234')" 

刪除括號

"UPDATE tbl_Settings set password = '1234'" 
+0

謝謝;)我一定是瞎.. – user1281991 2012-03-30 07:42:25