2017-08-16 21 views
-4

我試圖通過我的C#Winforms應用程序設置數據庫中特定項目的到期狀態。如何使用大於或小於登錄C#MySQL更新語句

到目前爲止,我已經試過這樣:

MySqlCommand comm = new MySqlCommand("update items set Expiry = 'Yes' where ExpiryDate > "+ DateTime.Now.ToShortTimeString()+");",connection); 
comm.ExecuteNonQuery(); 

,但我有問題,與它

+0

你能否提供你使用它的問題? –

+0

看看這個:https://stackoverflow.com/questions/9610361/sql-greater-than-equal-to-and-less-than – 10a

+2

添加你的'DateTime'作爲參數,而不是字符串連接的原因很多,但這裏最明顯的一點是你會忘記在值的周圍添加單引號。在將來通過提供Exception和它的細節來描述你正在遇到的'issues'(是的,這段代碼將在運行時拋出一個Exception)。另見[問]和[mcve]。 – Igor

回答

3

添加您DateTime作爲參數,而不是字符串連接的原因有很多,但最明顯的一個在這裏你會忘記添加單引號的價值。在將來通過提供例外和它的細節描述issuesOP中的代碼將在運行時上拋出異常)。

MySqlCommand comm = new MySqlCommand("UPDATE items SET Expiry = 'Yes' WHERE ExpiryDate > @today", connection); 
comm.Parameters.AddWithValue("@today", DateTime.Today); // if you want time use DateTime.Now 
comm.ExecuteNonQuery(); 

上述代碼假定[項目] [到期]在表中定義(模式)是DateDateTime類型。

+1

當你完成它時,不要忘記處理你的命令對象! – ShooShoSha

+0

謝謝,它工作 –