利用BindingSource.Filter筛选数据,并显示在DataGridView上

       DataGridView和SQL SERVER 已经绑定,是通过DataSources窗口将对于数据库表拖进界面上自动绑定好的。

     DataGridView显示的是数据库全部数据,现在想通过一个Combo box下拉动作来筛选符合条件的数据,并刷新DataGridView。在网上找了很久都没有找到个能用的方法,有人建议说将DataGridView中不符合条件给屏蔽掉(visible = false),我试了下,我发现在屏蔽行的时候,必须先屏蔽列才会生效,不然会报错,而且用for来查询,对于多数据效率也不行。并且新建的行也被屏蔽掉了,所以比较麻烦也不适用。所以自己想了一个方法,来和大家分享下。

     这个方法主要是利用了BindingSource.Filter 这个属性。话不多说了,上代码吧,代码很简单。

     自定义函数:CustomGridRefresh

 

public partial class Form1:Form

{

.....    

  private void CustomGridRefresh(string str)

      {

            string strFilter = String.Format("Project = '{0}'",str);  //我这里是用的数据库 Project字段来筛选的,可以根据需要自己定义。

             this.bTBindingSource.Filter = strFilter;          

             this.bTDataGridView.Refresh();

      }

}

 

在combo box响应函数里面就可以调用上述函数,传进 str。

 

你可能感兴趣的:(C#,C#,datagridview,datagridview,datagridview,datagridview,datagridview,BindingSource)