2016-08-17 3 views
0

내 코드가 잘못되었음을 알고 싶습니다. 두 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 
관련 문제