我只需要詢問DateTimePicker,因爲當我運行下面的查詢時,我會在月份和日期之間得到正確的數據,但是一年是錯誤的。 DATEOFTRANSACTION具有varchar作爲數據類型。來自DateTimePicker的Visual Basic日期在SQL中不起作用
示例方案
DateTimePicker1 = 2017年6月10日
DateTimePicker2 = 2017年10月22日
數據庫中有:
2017年6月10日
2017/02/08
2017/12/15
2018年8月2日
運行查詢後,我的顯示是:
2017年6月10日
2017年8月2日
2018年8月2日
查詢字符串以獲取Picker1和Picker2之間的日期
Dim rsa As New OracleCommand(
"SELECT * FROM DBOR WHERE DATEOFTRANSACTION BETWEEN '"
& Format(DateTimePicker1.Value, "MM/dd/yyyy").ToString & "' AND '"
& Format(DateTimePicker2.Value, "MM/dd/yyyy").ToString & "'", con)
我插入查詢是這樣的
Dim rs As New OracleCommand(
"Insert into DBOR (OR_NUMBER,FIRSTNAME,MIDDLENAME,LASTNAME,DATEOFTRANSACTION,TIMEOFTRANSACTION, PRICE, CASHIER) values ('"
& RECEIPTform.Label1.Text & "', '"
& ADDCUSTOMERform.FirstName.Text & "','"
& ADDCUSTOMERform.MiddleName.Text & "','"
& ADDCUSTOMERform.LastName.Text & "' ,'"
& Format(Date.Now(), "MM/dd/yyyy") & "' , '"
& TimeOfDay.ToString("h:mm:ss tt") & "', '"
& TextBox1.Text & "', '"
& LOGINform.username.Text & "')", con)
瞭解如何使用參數 – Steve
查看此(OracleCommand.Parameters屬性):https://msdn.microsoft.com/es-es/library/system.data.oracleclient.oraclecommand.parameters(v=vs .110).aspx – Horaciux
DateTimePicker.Value屬性是日期。您的代碼將其轉換爲特定格式的字符串。如果數據庫列是日期,則傳遞日期。如果列不是Date,它們應該是 - NET DB提供者完全有能力存儲和傳遞日期。使用SQL參數 - 組合SQL不需要那麼單調乏味且容易出錯。 – Plutonix