我有一個From和To DateTimePicker
。我將它們轉換爲String
並使用它來過濾特定範圍的MsAccess database
,但過濾存在問題。例如,我想從2015年1月1日至2015年1月31日過濾。結果包括前幾年的1月份。我的發言似乎有什麼問題?獲取Date Date Picker的值並使用BETWEEN在Ms Access數據庫中過濾日期
這是我的代碼:
Dim connectionstring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\STSlog.mdb;Jet OLEDB:Database Password=password;"
Dim conn As New OleDbConnection(connectionstring)
Dim command As New OleDbCommand
Dim commstring As String
Dim fromdatestring As String = FromDPicker.Value.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)
Dim todatestring As String = ToDPicker.Value.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)
commstring = "SELECT Mark, ProjectCode, Project, Activity, today, Regular, OT FROM data WHERE today BETWEEN '" & fromdatestring & "' AND '" & todatestring & "' AND empno = '" & TimeSheetAdmin.EmpNumCmbBox.SelectedItem.ToString & "' ORDER BY VAL(Mark) DESC"
command = New OleDbCommand(commstring, conn)
爲什麼要將日期時間轉換爲字符串?這太愚蠢了。使用參數化查詢,然後您不必擔心它。另外,您將消除您擁有的SQL注入安全漏洞。 –
我的數據庫中的日期字段是短文本類型的列。 – Kreyah