2016-08-17 6 views
0

私のコードで何が間違っているのかを知りたい 2つのDateTimePicker.Value.Dateを使用して日付範囲を検索し、DataGridViewで行全体を表示したいと考えています。日付範囲を検索してDataGridviewにデータを表示する方法は?

私のコードではDataGridViewに何も表示されず、空白行のみ表示されます。助けてください!!ありがとう!!

は、ここに私の更新されたコードです:

Private Sub btnSearchTest_Click(sender As Object, e As EventArgs) Handles btnSearchTest.Click 
    con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=|DataDirectory|\TESTDB.accdb") 
    con.Open() 

    Dim ds As New DataSet 
    Dim dt As New DataTable 
    Dim SelectedSearch As String 
    SelectedSearch = cbxSearchList.SelectedItem 
    ds.Tables.Add(dt) 
    Dim da As New OleDbDataAdapter 
    If cbxSearchList.SelectedItem = "Sign Date" Then 
     SelectedSearch = "SignDate" 
     Dim dtp1 As Date = DateTimePicker1.Value.Date 
     Dim dtp2 As Date = DateTimePicker2.Value.Date 
     da = New OleDbDataAdapter("SELECT * FROM User where " + SelectedSearch + " BETWEEN #" + dtp1 + "# and #" + dtp2 + "#", con) 
    End If 

    da.Fill(dt) 
    SearchDataGridView.DataSource = dt.DefaultView 

    con.Close() 
    SearchDataGridView.Show() 

End Sub 

答えて

1

は、私がデータテーブルの上ではなく、データベース、このような何かにフィルタを使用します....

Private Sub btnSearchTest_Click(sender As Object, e As EventArgs) Handles btnSearchTest.Click 
    con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=|DataDirectory|\TESTDB.accdb") 
    con.Open() 

Dim ds As New DataSet 
Dim dt As New DataTable 
Dim SelectedSearch As String 
SelectedSearch = cbxSearchList.SelectedItem 
ds.Tables.Add(dt) 
Dim da As New OleDbDataAdapter 
Dim dtp1 As Date 
Dim dtp2 As Date 
If cbxSearchList.SelectedItem = "Sign Date" Then 
    SelectedSearch = "SignDate" 
    dtp1 = DateTimePicker1.Value.Date 
    dtp2 = DateTimePicker2.Value.Date 
    da = New OleDbDataAdapter("SELECT * FROM User", con) 
End If 

da.Fill(dt) 
SearchDataGridView.DataSource = dt.Select("#" & dtp1 & "# >= SignDate AND #" & dtp2 & "# <= SignDate") 

con.Close() 
SearchDataGridView.Show() 

End Sub 
関連する問題