c# winform 多条件查找
我现在有2个textbox一个是用户名,另一个是电话现在想对这两个进行条件查找datagridview里的数据stringa=this.textBox2.Text.ToS...
我现在有2个textbox 一个是用户名,另一个是电话 现在想对这两个进行条件查找datagridview里的数据 string a = this.textBox2.Text.ToString().Trim(); string str = "select * from 表1 where 电话 like '%" + a + "%'"; SqlDataAdapter da = new SqlDataAdapter(str, conn); da.Fill(ds, "表1"); dataGridView1.DataSource = ds.Tables["表1"].DefaultView; string b = this.textBox1.Text.ToString().Trim(); string co = "select * from 表1 where 用户名 like '%" + a + "%'"; 这是我的一段代码,已经能够对用户名进行查找,对电话进行查找的时候 string str = "select * from 表1 where 电话 like '%" + a + "%'"; 里str显示已经定义过 该怎么办
展开
2个回答
展开全部
先把所有的结果 查询出来,不加条件放入到DataTable中,然后DataTable中有个Select方法,用这个,返回的是行数组,非常好用。 下面有个例子 dtShow是需要显示到DataGridView的表信息 DataTable dtShow; dtPrison是所有的信息DataTable表,总信息表 rows 是 DataRow[] rows; dttmp是临时的DataTable表 dtShow = dtPrison.Clone(); if (!string.IsNullOrEmpty(cbSheng1.Text)) { rows = dtPrison.Select("省 = '" + cbSheng1.Text + "'");//省是否为空,则颂带相当于第樱拍一个文本框条件 foreach (DataRow thisrow in rows) { dtShow.Rows.Add(thisrow.ItemArray); } } else { dtShow = dtPrison.Copy(); } if (!string.IsNullOrEmpty(cbShi1.Text))//市是否为空,相当于你第二个文本框条件 { dttmp = dtShow.Copy(); rows = dttmp.Select("市 = '" + cbShi1.Text + "'"); dtShow.Clear(); foreach (DataRow thisrow in rows) { dtShow.Rows.Add(thisrow.ItemArray); } } if (!string.IsNullOrEmpty(cbQu1.Text))//区是否为孙芦空相当于第三个文本框条件 { dttmp = dtShow.Copy(); rows = dttmp.Select("区 = '" + cbQu1.Text + "'"); dtShow.Clear(); foreach (DataRow thisrow in rows) { dtShow.Rows.Add(thisrow.ItemArray); } } dataGridView.DataSource=dtShow;.//显示查询完毕后的结果
展开全部
用and就可以了 最终生成SQL是这样子的,你可以参考着弄 select * from 表1 where 电做基话唯胡虚 like '%123%' and 用户名 like '%abc%' 你的代码风格需要注意: 1.textBox2.Text 本来就是字符串,不需要ToString 浪费 2.应该判断文本是否有输入,否则没有输入文本的时候,like会出错,因为生成的SQL会是 like '%%' 3.表名 列名,最好加上方括号,比如 [表1] 这是指燃好习惯
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询