0

我有一个 datagridview 控件,它使用名为 m_DeletedItemsDT 的 DataTable 显示来自我的 SQL Server DB 的数据。

在网格上方,我有两个 datatimepicker 控件,因此用户可以选择开始日期和结束日期,然后单击 cmdFilterData 从数据库中获取过滤数据集并使用以下查询刷新网格:

"SELECT * FROM ReturnUnpaidData_Audit WHERE [AuditDateTime]<='" & Me.dtpEndDate.Value.ToString("yyyy-MM-dd") & "' AND [AuditDateTime]>='" & Me.dtpStartDate.Value.ToString("yyyy-MM-dd") & "'"

我想要的是而不是再次往返数据库,以便在网格上或在称为m_DeletedItemsDT并在表单/类级别声明的数据表上进行过滤。

我尝试使用在 WinForms 的 TextBox 中输入的文本来 查看Filter DataGridView,但这并不是我真正需要的。

4

1 回答 1

1

我通过一些试验和错误解决了这个问题:

Dim dv As New System.Data.DataView

dv.Table = m_DeletedItemsDT
' "Server like '%" + textBox1.Text + "%'";
dv.RowFilter = "[AuditDateTime]<='" & Me.dtpEndDate.Value.ToString("yyyy-MM-dd") & "' AND [AuditDateTime]>='" & Me.dtpStartDate.Value.ToString("yyyy-MM-dd") & "'"
dgvDeletedRecords.DataSource = dv

如果出现cmdClearFilter按钮,我只需执行以下操作:

    Dim dv As New System.Data.DataView

    Me.chkAUtoDates.Checked = False
    '        Call m_GetData()
    With dv
        .Table = m_DeletedItemsDT
        .RowFilter = ""
    End With

    dgvDeletedRecords.DataSource = dv

菲利普

于 2013-03-15T14:34:00.457 回答