2015-07-10 69 views
0

您好我想使用Vb.NET更新命令更新MS Access中的日期。我使用日期選擇器工具和數據類型的日期是日期/時間。我用的調試,一切即將完美的變數,但是當我檢查更新用日期和月份仍然是正確的,我選擇,但年改爲1894年.... 代碼是:使用Vb.NET更新命令在MS Access中更新日期

Dim dt As String 
dt = Format(Dtp1.Value, "dd-MM-yyyy") 
Cmd.Parameters.Clear() 
Cmd.CommandText = "update tran set expdate=" & dt & " where trno=" & TxtMTrNo.Text.Trim 
Cmd.ExecuteNonQuery() 
LoadProducts() 

TxtMTrNo.Text = "" 
TxtMProduct.Text = "" 
TxtPQty.Text = "" 
TxtSQty.Text = "" 

MsgBox("Edited successfull") 
+0

如果'expdate'是數據庫中的日期列,則應該傳遞日期值而不是字符串。另外,驗證用戶輸入 - 如果'TxtMTrNo'類似於「我喜歡派」那麼該怎麼辦? – Plutonix

回答

0

你需要把日期用單引號:

Cmd.CommandText = "update tran set expdate='" & dt & "' where trno=" & TxtMTrNo.Text.Trim 

否則它認爲日期是一個數學表達式。

+0

非常感謝它通過把單引號工作.. – Shaez

1

不要使用字符串連接...這是容易出錯(日期格式的局部性問題)並且容易受到SQL注入問題的影響。使用參數代替,像這樣:

Cmd.CommandText = "update tran set [email protected] where ..... 
Cmd.Parameters.AddWithValue("@pDate ", ...... 
Cmd.ExecuteNonQuery() 
+0

感謝您的回覆,我用單引號數據參數和它的工作... – Shaez