2016-06-06 4 views
1

Ich möchte Daten aus einer Datenbank in einer Datagridview anzeigen. Ich bekomme einen Fehler auf da.Fill(ds, "SAMPLE") mit "Datentyp Mismatch-Fehler". Bitte sehen Sie den Screenshot. Meine Datumsformate sind 'short date', datetimepicker und Datenbankwerte.Abrufen von Daten zwischen zwei Daten aus Access-Datenbank mit VB.NET

Imports System.Data.OleDb 
Public Class Form1 
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Recto D Sanchez Jr\Documents\sample.accdb" 
Dim MyConn As OleDbConnection 
Dim da As OleDbDataAdapter 
Dim ds As DataSet 
Dim tables As DataTableCollection 
Dim source1 As New BindingSource 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    MyConn = New OleDbConnection 
    MyConn.ConnectionString = connString 
    ds = New DataSet 
    tables = ds.Tables 
    da = New OleDbDataAdapter("Select * from SAMPLE where [LOGDATE] between '" & DateTimePicker1.Text & "' And '" & DateTimePicker2.Text & "'", MyConn) 
    da.Fill(ds, "SAMPLE") 
    Dim view As New DataView(tables(0)) 
    source1.DataSource = view 
    DataGridView1.DataSource = view 
End Sub 

End Class

error screenshot

+0

haben Sie versucht, "SAMPLE" zu entfernen? – Spiderman

+0

Versuchte das. Derselbe Fehler. :( – jaysonpogi

Antwort

1

Da Ihre Datetime Kontrollen bereits mit dem richtigen Datetime-Werten beschäftigen könnten Sie mehr Glück mit einer parametrisierte Abfrage wie diese:

MyConn = New OleDbConnection(connString) 
Dim cmd As New OleDbCommand("SELECT * FROM [SAMPLE] WHERE [LOGDATE] Between ? And ?", MyConn) 
cmd.Parameters.AddWithValue("?", DateTimePicker1.Value.Date) 
cmd.Parameters.AddWithValue("?", DateTimePicker2.Value.Date) 
da = New OleDbDataAdapter(cmd) 
ds = New DataSet 
da.Fill(ds, "SAMPLE") 

Es würde Ihnen die Mühe ersparen, mit verschiedenen Datumsformaten umzugehen, Datumsliterale und andere potentielle Fallstricke abzugrenzen.

+0

Sie haben es geschafft! Vielen Dank!: D – jaysonpogi

0

Versuchen

da = New OleDbDataAdapter("Select * from SAMPLE where [LOGDATE] between #" & DateTimePicker1.Value.ToString("MM/dd/yyyy HH:mm:ss") & "# And #" & DateTimePicker2.Value.ToString("MM/dd/yyyy HH:mm:ss") & "#", MyConn) 
Verwandte Themen