【问题标题】:Dynamically filtering a DataGridView control动态过滤 DataGridView 控件
【发布时间】:2013-03-15 13:25:37
【问题描述】:

我有一个 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 并在表单/类级别声明的数据表上进行过滤。

我尝试查看Filter DataGridView with the text entered in TextBox in WinForms ,但这并不是我真正需要的。

【问题讨论】:

    标签: vb.net winforms datagridview datatable


    【解决方案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
    

    菲利普

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多