Vb.net 使用两个datetimer选择器筛选datagridview中的数据

Vb.net 使用两个datetimer选择器筛选datagridview中的数据,vb.net,datagridview,Vb.net,Datagridview,我试图根据两个日期和通过组合框选择的帐号过滤datagridview中的数据。我的访问表中有三条记录,一条记录为2017年5月1日,另一条记录为2017年5月16日,另一条记录为2017年5月20日。当我从2017年5月8日至2017年5月20日进行选择时,我没有获得任何数据,但它应显示2017年5月16日和2017年5月20日的两条记录。请参阅下面的代码 Dim StartDate As Date = dtpfrom.Value.Date Dim EndDate As Date

我试图根据两个日期和通过组合框选择的帐号过滤datagridview中的数据。我的访问表中有三条记录,一条记录为2017年5月1日,另一条记录为2017年5月16日,另一条记录为2017年5月20日。当我从2017年5月8日至2017年5月20日进行选择时,我没有获得任何数据,但它应显示2017年5月16日和2017年5月20日的两条记录。请参阅下面的代码

    Dim StartDate As Date = dtpfrom.Value.Date
    Dim EndDate As Date = dtpto.Value.Date

    Try
        myconnection()

        sql = "SELECT * FROM tblbankposting WHERE AccountNo='" & cboaccounts.Text & "' AND BankEntryDate BETWEEN "
        sql &= "#" & StartDate & "# and #" & EndDate & "#"

        adapter = New OleDbDataAdapter(sql, connection)
        dt = New DataTable("tblbankposting")
        adapter.Fill(dt)
        TblbankpostingDataGridView.DataSource = dt
        TblbankpostingDataGridView.Sort(TblbankpostingDataGridView.Columns(1), System.ComponentModel.ListSortDirection.Ascending)

    Catch ex As Exception
        MessageBox.Show(ex.Message, "CMS", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Finally
        connection.Close()
    End Try
End Sub

不要使用字符串连接将值插入SQL代码。使用参数可以避免日期格式的潜在问题,这可能是此处的问题所在。您可以从这里开始学习如何做到这一点:我确实在插入数据时使用了参数。因此,我不确定问题出在插入与在查询中使用参数无关的部分。在SQL代码中插入值时始终使用参数。如果你做得不好也可以,但如果你每次都做,你就不必担心你做得不好。