2010-06-02 90 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