浮生  Э 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. 在mac上快捷找到nodejs的安装路径

    打开控制台输入 which node ,得到的输出结果就是node安装路径

  2. 开发日记(项目中SQL查询的优化)

    今天发现自己之前写的一些SQL查询在执行效率方面非常不理想,于是尝试做了些改进. 需求为查询国地税表和税源表中,国税有而税源没有的条目数,之前的查询如下: SELECT COUNT(NAME)     ...

  3. jQuery——表格添加数据

    1.遮罩层宽高100%,position,不占位 2.注册a标签的删除事件,用on()方法,以方法可以动态添加,之前js需要利用冒泡属性(父标签注册事件,子标签冒泡,target===li触发事件) ...

  4. 使用 Spring Social 连接社交网络

    Spring Social 框架是spring 提供社交平台的分享组件 https://www.ibm.com/developerworks/cn/java/j-lo-spring-social/

  5. VC使用CryptoAPI计算MD5

    // md5.h #include <tchar.h> #include <wincrypt.h> // 计算Hash,成功返回0,失败返回GetLastError() // ...

  6. cvpr2016论文

    http://openaccess.thecvf.com/ICCV2017.py http://openaccess.thecvf.com/CVPR2017.py http://www.cv-foun ...

  7. pandas.DataFrame.quantile

    pandas.DataFrame.quantile 用于返回数据中的 处于1/5    1/2(中位数)等数据

  8. chrony配置介绍

    rhel7 文档https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Adminis ...

  9. 一个带关闭按钮的Div窗口,很漂亮

    <html><head><title>JS+CSS实现带关闭按钮的DIV弹出窗口</title><script> function lock ...

  10. Android传递Bitmap的两种简单方式及其缺陷

    Android传递Bitmap的几种简单方式 一,通过Intent的Bundle. 比如有两个activity,A,B,从A进入B.先在A中将Bitmap写进去: Resources res=getR ...