首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

textbox怎么直接模糊查询datagridview里当前已有的数据,而不跑到数据库去查找

2012-06-06 
textbox如何直接模糊查询datagridview里当前已有的数据,而不跑到数据库去查找textbox如何直接模糊查询data

textbox如何直接模糊查询datagridview里当前已有的数据,而不跑到数据库去查找
 
  textbox如何直接模糊查询datagridview里当前已有的数据,而不跑到数据库去查找?

就是我想textbox模糊查询datagridview里当前的数据,而不是用存储过程到数据库去获取再填充datagridview,这样速度就快很多了。而且,因为是当前已有的数据,当我模糊查询了textbox1后显示满足条件的数据,然后我再textbox2模糊查询——是从当前的数据里再找的(模糊查询了textbox1后显示满足条件的数据),相当于多条件查询!


谢谢!


[解决办法]

for(int i=0;i<dataGridView1.Rows.Count;i++) 

if (dataGridView1.Rows[i].Cells[0].Value.ToString().Equals(textBox1.Text)) 

//找到匹配行 



[解决办法]
for(int i=0;i <dataGridView1.Rows.Count;i++) 

if (dataGridView1.Rows[i].Cells[0].Value.ToString().IndexOf(textBox1.Text)!=-1) 
{
//条件成立时表示单元格数据源符合文本框中数据

 } 

[解决办法]

探讨
2楼其实和1楼的是一样的。
我还要,怎么样只显示满足条件的数据?

[解决办法]
把绑定数据源缓存起来,然后在缓存的数据源中找,不是更好吗
[解决办法]
建议使用Contains()方法,实现类似模糊查询。 
C# code
for (int i = 0; i < dataGridView1.Rows.Count; i++)            {                if (!dataGridView1.Rows[i].Cells[0].Value.ToString().Contains(textBox1.Text))                {                    //找到不匹配行 ,隐藏掉                    dataGridView1.Rows[i].Visible = false;                  }            }
[解决办法]
探讨
把绑定数据源缓存起来,然后在缓存的数据源中找,不是更好吗

[解决办法]
探讨
把绑定数据源缓存起来,然后在缓存的数据源中找,不是更好吗

[解决办法]
缓存到DataSet中,使用DataView的过滤功能就可以实现了吧!
[解决办法]

建议:

1.你在首次绑定datagridview显示数据时,肯定有一数据源,把它设置成本类全局变量,比如是DataTable Dt

2.给你的textbox添加change事件

3.待你在textbox输入模糊查询条件时 如 Name 包含'吴'字,用Dt.Select("Name like %'吴'%", "Id"),按Id排序,重新组成新的数据源,绑定到datagridview中;

以上三步足可以满足你的需求,不需重新访问数据库后台。
祝你好运!
[解决办法]
挺好的( ⊙o⊙ )哇

热点排行