2010-06-02 3 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()`` 

lorsque je sélectionne table, (cmbvalue) de ComboBox et quand je choisis la date du sélecteur de datetime (dtp) ou en dernier cas de TexBox converti à jour et sql temps ressemble à ceci "SELECT * FROM Uprava WHERE Datum> = '2.6.2010 10:28:14'" et toutes les requêtes semblent correctes mais obtiennentaide format de date dans vb.net

Incompatibilité de type de données dans l'expression de critères. erreur pour la date (oDatumMin) lorsque la colonne excute dans l'accès est également mis à jour je ne sais pas quoi d'autre pour essayer

Répondre

2

Je soupçonne que c'est un problème de localisation. Essayez de changer le format de date à celui qui devrait être universellement reconnu: [? Qu'est-ce que vos paramètres régionaux du serveur/page code]

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

+0

Oui, ou pour être encore plus sûr, utilisez "AAAA-MM-JJ" pour la date, alors il ne peut pas être confondu avec le mauvais format même si vous avez écrit par erreur l'année comme 2 chiffres seulement, et que vous êtes conforme à la norme ISO 8601. –

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