c# datagridview 如何筛选数据

yfc260 2011-08-08 04:54:00
用vs2008 自带的方法,把datagridview 绑定了数据库。 在输入 筛选条件后,要求datagridview只显示筛选后的数据。
请问该如何实现?
比如select * from " + father + " where 送检单位 like '%" InspectFactory "%;
那么在 SqlDataReader MyReader中, 再读,这样很麻烦。
求问大侠 有什么好的方法, 或好的思路。谢谢!
...全文
3504 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
namhyuk 2011-08-10
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
DataView dv = this.某某DataSet.某某DataTable.DefaultView;
if(!string.IsNullOrEmpty(textBox1.Text))
dv.RowFilter = string.Format("字段名 like '%{0}%'", textBox1.Text);
else
dv.RowFilter = null;
某某DataGridView.DataSource = dv;
}
cnwin 2011-08-10
  • 打赏
  • 举报
回复
绑定到DataTable
用DataView的RowFilter就可以解决。
另外你这句
dv.RowFilter = "记录编号=QRDMH08333";//
应该是
dv.RowFilter = "记录编号='QRDMH08333'";//
字符串应该加引号
熙风 2011-08-10
  • 打赏
  • 举报
回复
把获得的数据存在datatable里面,,删选的时候
DataRow[] drList = datatable.Select("送检单位 like '%" InspectFactory "%");

绑定
private void bindDgv(DataRow[] drList)
{
DataGridView1.Rows.Clear();
foreach (DataRow row in drList)
{
DataGridView dgv = new DataGridView();
int index = DataGridView1.Rows.Add(dgv);
DataGridView1.Rows[index].Cells["a"].Value = row["a"].ToString();
DataGridView1.Rows[index].Cells["b"].Value = row["b"].ToString();
}
sdl2005lyx 2011-08-10
  • 打赏
  • 举报
回复
这原本是个很简单问题,在MSDN上有详细例子,自己学会慢慢调试,不要每一步都问别人,对自己不好喔,,,
hellokity11111 2021-07-19
  • 举报
回复 1
@sdl2005lyx 懂王
小D2013 2011-08-08
  • 打赏
  • 举报
回复
9楼的没问题,string.Format( "记录编号= {0}","QRDMH08333");
lifeixie 2011-08-08
  • 打赏
  • 举报
回复
先绑定
然后
比如 select ....from ..aa
dt.Select("gongzi = 8000"); // 字符串 where后面的条件

这时候就筛选出来 gongzi字段 = 8000

然后 dt.Select("xingbie = '男'")

在 工资 = 8000的基础上在筛选出 男
yfc260 2011-08-08
  • 打赏
  • 举报
回复
求高人啊!
yfc260 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yfc260 的回复:]
引用 4 楼 kongwei521 的回复:
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "ID>3 and ID<10";//用这个 指筛选条件
this.datagridview1.DataSource = dv;

[/Quote]
DataView dv= this.waterMeterDataDataSet.检测结果信息.DataSet.Tables[2].DefaultView;
MessageBox.Show(this.waterMeterDataDataSet.检测结果信息.DataSet.Tables[2].DefaultView.ToString());
dv.RowFilter = "记录编号=QRDMH08333";//用这个 指筛选条件
dataGridView3.DataSource = dv;

上面是我按你的 想法编的。。 可是 执行的时候说:未找到列 [QRDMH08333]。 里面明明有啊?
wuyuanjie20 2011-08-08
  • 打赏
  • 举报
回复
不会不会不会
蝶恋花雨 2011-08-08
  • 打赏
  • 举报
回复
ds是dataset 去我发的网址学习下吧
蝶恋花雨 2011-08-08
  • 打赏
  • 举报
回复
http://blog.163.com/bluelightning/blog/static/581653201058113038691/
http://blog.csdn.net/blackwuxin/article/details/6656103

http://msdn.microsoft.com/zh-cn/library/system.data.dataview.rowfilter(VS.80).aspx
yfc260 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kongwei521 的回复:]
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "ID>3 and ID<10";//用这个 指筛选条件
this.datagridview1.DataSource = dv;
[/Quote]
大哥 ds 是什么类型的?
蝶恋花雨 2011-08-08
  • 打赏
  • 举报
回复
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "ID>3 and ID<10";//用这个 指筛选条件
this.datagridview1.DataSource = dv;
yfc260 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
datatable在本地,直接处理datatable

DataTable dt = new DataTable();
dt.Select("");
然后重新绑定
[/Quote]
我看似懂非懂,能否具体点? 大侠。
bdmh 2011-08-08
  • 打赏
  • 举报
回复
datatable在本地,直接处理datatable

DataTable dt = new DataTable();
dt.Select("");
然后重新绑定
yfc260 2011-08-08
  • 打赏
  • 举报
回复
在线等啊!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧