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)
{
//条件成立时表示单元格数据源符合文本框中数据
}
}
------解决方案--------------------
------解决方案--------------------把绑定数据源缓存起来,然后在缓存的数据源中找,不是更好吗
------解决方案--------------------建议使用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⊙ )哇