浮生  Э 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. Android开发中常用的ListView列表的优化方式ViewHolder

    在Android开发中难免会遇到大量的数据加载到ListView中进行显示, 然后其中最重要的数据传递桥梁Adapter适配器是常用的,随着市场的需 求变化ListView'条目中的内容是越来越多这就 ...

  2. Monkey测试总结

    Monkey测试总结 1.什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等), 实 ...

  3. 如何设置“用eclipse开发时自动在顶端产生import”?

    eclipse新版本中的默认设置可能导致自动在生成import时是在代码中,而大多数时间我们需要自动生成import在代码顶端,按照如下设置即可纠正

  4. Caffe RPN :error C2220: warning treated as error - no 'object' file generated

    在 caffe里面添加rpn_layer.cpp之后,总是出现 error C2220: warning treated as error - no 'object' file generated 这 ...

  5. 【技术累积】【点】【java】【21】序列化二三事

    基础概念 把对象等转为二进制进行传输的是序列化,反之为反序列化: 应用场景一般为读写文件,传输数据/接口调用: Externalizable和Serializable java的序列化方式有两种: S ...

  6. R语言图表

    条形图 在R语言中创建条形图的基本语法是 barplot(H, xlab, ylab, main, names.arg, col) H是包含在条形图中使用的数值的向量或矩阵 xlab是x轴的标签 yl ...

  7. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  8. jquery spa

    1.hashchange监听 2.根据url加载不同页面 $.ajax({ url:"/xx/xx.html" type:"get", dataType:&qu ...

  9. rsync全网备份

    rsync备份企业方案 企业有Linux服务器又有windows服务器,备份用rsync(服务端),Linux(客户端),Windows(客户端,cwrsync,旧版本有免费版)打包压缩数据往服务器上 ...

  10. python--(协程 和 I/O多路复用)

    python--(协程 和 I/O多路复用) 一.协程 1. >>>单线程下实现并发, 最大化线程的效率, 检测 IO 并自动切换,程序级别的任务切换, 之前多进程多线程都是系统级别 ...