浮生  Э 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.简单事件绑定 $("button").click(function () {})//可重复绑定,不会被层叠 2.bind():不推荐使用 $("button ...

  2. 【译】x86程序员手册18-6.3.1描述符保存保护参数

    6.3 Segment-Level Protection 段级保护 All five aspects of protection apply to segment translation: 段转换时会 ...

  3. 【技术累积】【点】【java】【27】@JSONField

    @JSONField 该注解隶属于阿里fastjson,方便fastjson处理对象时的一些操作 源码 @Retention(RetentionPolicy.RUNTIME) @Target({ El ...

  4. 011--c数组--排序--组成最大数

    数组--排序--组成最大数   组成最大数   任意输入一个自然数,输出该自然数的各位数字组成的最大数.例如,输入 1593 ,则输出为 9531 . 输入: 自然数 n 输出: 各位数字组成的最大数 ...

  5. HDU_1698_Just a Hook_线段树区间更新

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. java 类名.this

    类名为this的限定词. 相对于内部类:有多个this: 1.内部类本身的this: 2.内部类的环境类的this: 类名.this,就是为了对这些this指针的指向做出限定. 区别于类名.class ...

  7. 惊了!!! 小白零基础学java (月薪过万是你的梦想嘛) 手把手教学 就怕你不动手【二十五】第二章【初识MySQL】

    初识MySQL1. 了解主流的数据库和数据库分类1.1 数据库概念数据库:按照数据结构来组织.存储和管理数据的一种建立在计算机存储设备上的仓库. 数据库的优势: 1. 可以持久化存储大量的数据.方便我 ...

  8. LOJ——#6277. 数列分块入门 1

    ~~推荐播客~~ 「分块」数列分块入门1 – 9 by hzwer 浅谈基础根号算法——分块 博主蒟蒻,有缘人可直接观摩以上大佬的博客... #6277. 数列分块入门 1 题目大意: 给出一个长为 ...

  9. [BZOJ1031][JSOI2007]字符加密Cipher(后缀数组)

    传送门 算是个模板. 题目说循环,那就再复制一串拼接上. 然后求后缀数组,再搞就可以. 虽然是求后缀,会在后面多一些字符串,然而题目中说的是循环一圈,但是没有影响. ——代码 #include < ...

  10. 小记——GTMD校园网

    前言 学校一年前开通了校园网,然鹅信号未覆盖我们住的公寓,又多忍受了一年的小破宽带(10M带宽,100块300个小时) 上个星期,架设了一年的校园网终于通了,然后我们发现——校园网69元一个月,一个用 ...