相关文章推荐
胆小的小蝌蚪  ·  winfrom datagridview ...·  6 天前    · 
腼腆的松球  ·  c# checkbox 选中 - CSDN文库·  5 天前    · 
害羞的帽子  ·  如何检测DataGridView ...·  5 天前    · 
乖乖的拐杖  ·  winform ...·  昨天    · 
瘦瘦的木耳  ·  javascript - ...·  1 年前    · 
才高八斗的闹钟  ·  VB ListBox ...·  1 年前    · 

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。

DataGridView和SQL SERVER 已经绑定,是通过DataSources窗口将对于数据库表拖进界面上自动绑定好的。     DataGridView显示的是数据库全部数据,现在想通过一个Combo box下拉动作来筛选符合条件的数据,并刷新DataGridView。在网上找了很久都没有找到个能用的方法,有人建议说将DataGridView中不符合条件给屏蔽掉(visible =
增加 过滤 按钮的代码来自CodeProject网站,以下为实现步骤: 1.在工程中加入 DataGridView Auto Filter ColumnHeaderCell.vb 和 DataGridView Auto Filter TextBoxColumn.vb 2. DataGridView 中的 数据 vb.net教程要采用 Binding Source 的方式来绑定: Dim data Source As New Binding Source (table, Nothing) '此种方式可以在栏头 过滤 Main.DataViewL
Binding Source 控件可以对 数据 做简单的处理,比如使用 Filter 属性实现 数据 筛选 ,使用Sort属性实现简单的排序。 Filter 属性通常用在复杂的 数据 绑定方案中,当 Filter 不为空时, Binding Source 控件将此属性传递给基础列表日如果在对象初始化过程中设置此属性,该调用将会推迟到初始化完成后。F ilter 需要 指定列的名称,后跟一个运算符和一个要 筛选 的值, 筛选 值必须位于引号内。 Sort属性后面要跟有列的名称,用ASC或DESC标识,以指示是按升序还是降序排序,如果有多个列...
已知 数据 表 dtAll,dtAll中包含字段 【columnsA】、【columnsB】,要 筛选 出 columnsA 为“A”,columnsB 为 “B”的 数据 '1.创建容器接收 筛选 结果 dim dt as datatable '2.把datatable 转换为dataview格式 dim dv as dataview =new dataview(dtAll) '3.条件...
Binding Source 是一个 数据 绑定的控件,可以用来连接 数据 源和 数据 控件。如果要修改 数据 ,可以通过 Binding Source 的 Current 属性获取当前选中的 数据 行,然后修改对应的 数据 字段,最后调用 Binding Source 的 EndEdit 方法保存修改。例如: // 获取当前选中的 数据 行 DataRowView row = (DataRowView) binding Source 1.Current; // 修改 数据 字段 row["Name"] = "新名称"; row["Age"] = 30; // 保存修改 binding Source 1.EndEdit(); 注意,修改 数据 需要 先调用 Binding Source 的 EndEdit 方法保存之前的修改,否则可能会出现 数据 不一致的情况。另外,如果 数据 源是一个 DataTable,还 需要 调用 DataTable 的 AcceptChanges 方法才能将修改提交到 数据库