浮生  Э 2012-11-22 

c# winform 多条件查找

 20

我现在有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显示已经定义过  该怎么办

 

满意答案

流星紫愿 6级 2012-11-23

先把所有的结果 查询出来,不加条件放入到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;.//显示查询完毕后的结果
 
 

满意答案

古灵方程式 初级团  合作回答者:1人 2012-11-27

用and就可以了
最终生成SQL是这样子的,你可以参考着弄

select * from 表1 where 电话 like '%123%' and 用户名 like '%abc%'

你的代码风格需要注意:
1.textBox2.Text 本来就是字符串,不需要ToString 浪费
2.应该判断文本是否有输入,否则没有输入文本的时候,like会出错,因为生成的SQL会是 
   like '%%'
3.表名 列名,最好加上方括号,比如 [表1] 这是好习惯

 

其他回答(2)

林小白 3级 2012-11-22

 String sql = select * from T_Paiban ;
String condition="";
if(textBox1.Text.Trim()!="")
condition=" Num like '%" + textBox1.Text + "%' ";
if( textBox2.Text.Trim()!=""){
if(condition.Length>0){
condition+=“ or ”;
}
condition+="Name like '%" + textBox2.Text + "%'"
}
if( textBox3.Text.Trim()!=""){
if(condition.Length>0){
condition+=“ or ”;
}
condition+="TheWeek like '%" + textBox3.Text + "%'"
}
if(condition!="")
sql+=" where "+condition;应该就是这样的,如果还有编程方面的疑问,都是可以到问问堂找专业的编程方面的专家为你在线咨询作答的。

c# winform 多条件查找 外加网络人才回答的更多相关文章

  1. 通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找的方法

    在Excel中,通过VLOOKUP函数可以查找到数据并返回数据.不仅能跨表查找,同时,更能跨工作薄查找. 但是,VLOOKUP函数一般情况下,只能实现单条件查找. 如果想通过VLOOKUP函数来实现双 ...

  2. Excel:6种多条件查找方法

    如下图所示,要求根据设备分类和品牌来查找相应的销售数量. 1. 使用VLOOKUP+辅助列进行多条件查找 本例采用的方法是在原表的最前面加一辅助列,辅助列的公式为:=B2&C2 然后再采用VL ...

  3. Excel学习笔记:vlookup基础及多条件查找

    一.vlookup基础 关于vlookup的基础不多记录,相信基本的使用方法大家都懂得. 使用格式:=vlookup(搜索值,搜索范围,列号,是否精准匹配) =VLOOKUP(E2,$B$2:$C$6 ...

  4. 渐进结构—条件生成对抗网络(PSGAN)

    Full-body High-resolution Anime Generation with Progressive Structure-conditional Generative Adversa ...

  5. altium designer同一工程多个原理图如何快速查找同一网络标号

    方法一:如果只知道网络标号的名称,尚未找到任何一个,可以:Ctrl+F,输入网络标号名称,可按顺序逐个查看各个网络标号. 方法二:如果已经看到一个所要查找的网络标号,可以:按住Alt键不放,鼠标左键单 ...

  6. mysql字段按逗号,拆分并按条件查找

    mysql字段按逗号,拆分并按条件查找 mysql 表结构 CREATE TABLE `subid` ( `id1` varchar(255) DEFAULT NULL, `id2` varchar( ...

  7. 【Excel】多条件查找

    例如下图:要求在单元格从C10中根据分类与名称找出相应的数量 1.VLOOKUP函数(数组公式) {=VLOOKUP(A10&B10,IF({1,0},A2:A6&B2:B6,C2:C ...

  8. 使用find命令按条件查找多个文件并且拷贝至指定目录

    命令格式如下 find / \( -name "*.war" -o -name "*.jar" \) | xargs -i cp {} ${wardir} 当需 ...

  9. VLOOKUP多条件查找不使用辅助列

    问题描述: 可能很多人在使用VLOOKUP的时候,对于多条件时,则会使用辅助列进行查找,那么不使用辅助列是否也可以呢? 答案是:必须可以. 问题处理: 1.使用辅助列 2.不使用辅助列的操作如下: 公 ...

随机推荐

  1. jQuery——链式编程与隐式迭代

    链式编程 1.原理:return this; 2.通常情况下,只有设置操作才能把链式编程延续下去.因为获取操作的时候,会返回获取到的相应的值,无法返回 this. 3.end():结束当前链最近的一次 ...

  2. 批量注释LOG

    sed -i "s/LOG/\/\/ LOG/g" `grep LOG\(TRACE\) -rl .`

  3. 实例分割:MaskXRCnn 与Visual Genome数据集

    一.VG数据集 机器学习领域的突破突然让计算机获得了以未曾有的高精度识别图像中物体的能力--几乎达到了让人惊恐的程度.现在的问题是机器是否还能更上层楼,学会理解这些图片中所发生的事件. Visual ...

  4. 初学者怎么快速掌握Linux运维?

    2018年里,Linux运维的职位数量和平均薪资水平仍然持续了去年的强劲增幅,比很多开发岗位涨的都快.从研究机构的数据来看,Linux职位数量和工资水平涨幅均在IT行业的前五之列,比去年的表现还要好一 ...

  5. 使用vscode,新建.vue文件,tab自动生成vue代码模板

    第一步: 新建模板并保存 文件 --> 首选项 --> 用户代码片段 --> 输入vue,选择vue.json -->复制 第三步中的模板内容中内容保存 第二步: 添加配置,让 ...

  6. python常用三方库 - openpyxl

    目录 python常用三方库 - openpyxl 读取Excel文件 写入Excel文件 python常用三方库 - openpyxl openpyxl是一个第三方库, 可以处理xlsx格式的Exc ...

  7. hdu2007 平方和与立方和【C++】

    平方和与立方和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  8. (44). Spring Boot日志记录SLF4J【从零开始学Spring Boot】

    在开发中打印内容,使用 System.out.println() 和 Log4j 应当是人人皆知的方法了. 其实在开发中我们不建议使用 System.out 因为大量的使用 System.out 会增 ...

  9. SecureCRT的设置和美化

    一  . SecureCRT 7.1  的 安装     http://liufei888.blog.51cto.com/2625545/1306231 1.下载注册机SecureCRT.v.6.7. ...

  10. hdu_1048_The Hardest Problem Ever_201311052052

    The Hardest Problem Ever Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...