2010-06-02 94 views
1
 Dim Con As OleDb.OleDbConnection 
    Dim Sql As String = Nothing 
    Dim Reader As OleDb.OleDbDataReader 
    Dim ComboRow As Integer = -1 
    Dim Columns As Integer = 0 
    Dim Category As String = Nothing 
    Dim oDatumMin As Date 
    Dim column As String 
    column = Replace(TxtDateMax.Text, "'", "''") 
    'oDatumMin = Convert.ToDateTime(TxtDateMin.Text) 

    oDatumMin = DtpMin.Value 
    Dim oPath As String 
    oPath = Application.StartupPath 

    ' Select records. 
    Con = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & oPath & "\trb.accdb;") 
    Dim cmd As New OleDb.OleDbCommand 
    'Dim data_reader As OleDbDataReader = cmd.ExecuteReader() 
    Sql = ("SELECT * FROM " & cmbvalue & " WHERE Datum>='" & oDatumMin & "'") 
    cmd = New OleDb.OleDbCommand(Sql, Con) 
    Con.Open() 
    Reader = cmd.ExecuteReader() 
    Do While Reader.Read() 
     Dim new_item As New ListViewItem(Reader.Item("Datum").ToString) 
     new_item.SubItems.Add(Reader.Item("Steleks i krpe za cišcenje-toal papir-ubrusi-domestos").ToString) 
     new_item.SubItems.Add(Reader.Item("TEKUCINA ZA CIŠCENJE PLOCICA").ToString) 
     new_item.SubItems.Add(Reader.Item("KESE ZA SMECE").ToString) 
     new_item.SubItems.Add(Reader.Item("OSTALO-džoger-spužva za laminat").ToString) 
     new_item.SubItems.Add(Reader.Item("PAPIR").ToString) 
     LvIzvjestaj.Items.Add(new_item) 

    Loop 

    ' Close the connection.strong text 
    Con.Close()`` 
從組合框

當我選擇表,(cmbvalue),當我從日期時間選擇器(DTP),或在texbox最後一種情況下轉換爲日期和時間SQL選擇日期看起來像這樣「SELECT * FROM Uprava WHERE Datum> ='2.6.2010 10:28:14'」 並且所有查詢都看起來不錯但正在創建幫助日期格式

標準表達式中的數據類型不匹配。日期(oDatumMin)錯誤時執行 列中的訪問也設置爲日期 我不知道還有什麼要嘗試

回答

2

我懷疑這是一個本地化問題。嘗試改變日期格式,以一個應該被普遍承認:什麼是您的服務器的語言環境/代碼頁]

SELECT * FROM Uprava WHERE Datum >='2010/06/02 10:28:14' 

+0

是,還是要更安全,使用'YYYY-MM-DD'作爲日期,即使錯誤地將年份寫成2位數字,也不能誤認爲是錯誤的格式,並且符合ISO 8601。 – 2010-06-02 11:40:04

1
Dim sql As String = "SELECT * FROM MyTable WHERE Datum >= ?" 
Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(sql) 
cmd.Parameters.Add(New OleDb.OleDbParameter("@Datum", OleDb.OleDbType.Date)) 
cmd.Parameters("Datum").Value = oDatumMin 

http://msdn.microsoft.com/de-de/library/bbw6zyha.aspx