通过拼接SQL字符串实现多条件查询
一、通过拼接SQL字符串的方法的好处是:
1、方便查询条件的扩展。
2、简化业务逻辑的判断。
二、例子:
1、界面设计

2、点击查询的代码
/// <summary>
/// 按条件查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtSearch_Click_1(object sender, EventArgs e)
{
List<string> wherelist = new List<string>();
List<SqlParameter> parametlist = new List<SqlParameter>(); if (CbMzh.Checked)
{
wherelist.Add("mzh=@mzh");
parametlist.Add(new SqlParameter("@mzh", TbMzh.Text));
}
if (CbXm.Checked)
{
wherelist.Add("xm like '%'+@xm+'%'");
parametlist.Add(new SqlParameter("@xm", TbXm.Text));
}
if (CbJbmc.Checked)
{
wherelist.Add("jbzd like '%'+@jbzd+'%'");
parametlist.Add(new SqlParameter("@jbzd", TbJbmc.Text));
}
if (CbJzlb.Checked)
{
wherelist.Add("jzlb=@jzlb");
parametlist.Add(new SqlParameter("@jzlb", ComBoxJzlb.Text));
}
if (CbJzks.Checked)
{
wherelist.Add("jzks=@jzks");
parametlist.Add(new SqlParameter("@jzks", TbJzks.Text));
}
if (CbJzys.Checked)
{
wherelist.Add("jzys=@jzys");
parametlist.Add(new SqlParameter("@jzys", TbJzys.Text));
}
if (CbJzrq.Checked)
{
wherelist.Add("jzrq between @start and @end");
string start = DpStart.Value.ToString("yyyy-MM-dd") + " 00:00:00";
string end = DpEnd.Value.ToString("yyyy-MM-dd") + " 23:59:59";
parametlist.Add(new SqlParameter("@start", start));
parametlist.Add(new SqlParameter("@end", end));
}
if (CbJbmcjqcx.Checked)
{
wherelist.Add("jbzd = @jbzd");
parametlist.Add(new SqlParameter("@jbzd", TbJbmc1.Text));
}
string whereSql = string.Join(" and ", wherelist);
string sql = "select mzh,xm,xb,csny,age,pcid,jzks,jzys,jbzd,zddm,gzdw,jtzz,lxfs,jzlb,jzrq,xy from his_mzjzrz";
if (wherelist.Count > )
{
sql = sql + " where " + whereSql + " order by jzrq desc";
}
else
{
MessageBox.Show("请选择检索条件!");
return;
}
DataTable dt = MsSqlHelper.ExecuteDataTable(sql, parametlist.ToArray());
MzrzGridView.DataSource = dt;
toolStripStatusLabel2.Text = string.Format("共检索到{0}条记录", dt.Rows.Count.ToString());
toolStripProgressBar1.Minimum = ;
toolStripProgressBar1.Maximum = dt.Rows.Count;
for (int i = ; i <= dt.Rows.Count; i++)
{
toolStripProgressBar1.Value = i;
} }
通过拼接SQL字符串实现多条件查询的更多相关文章
- SQLServer 存储过程中不拼接SQL字符串实现多条件查询
以前拼接的写法 set @sql=' select * from table where 1=1 ' if (@addDate is not null) set @sql = @sql+' and a ...
- PL/SQL Developer 使用中文条件查询时无数据的解决方法
PL/SQL Developer 使用中文条件查询时无数据,这是由于字符集的不一致导致的. 执行以下sql命令:select userenv('language') from dual; 显示:SIM ...
- SQL 中的多条件查询
在应用程序开发中,多条件查询是个经常遇到的情况,最简单最麻烦的方法是把所有的可能情况都考虑到,但是无疑是繁琐的,而且很容易漏掉可能的情形,下面是SQL语句实现多条件查询的情况 select * fro ...
- PL/SQL Developer 使用中文条件查询时无数据的解决方法(转)
原文地址: PL/SQL Developer 使用中文条件查询时无数据的解决方法 PL/SQL Developer 使用中文条件查询时无数据,这是由于字符集的不一致导致的. 执行以下sql命令:sel ...
- 【批量加入】-拼接sql字符串
如今做的一个项目须要用到批量加入,可是封装的底层没有这种方法,所以自食其力,自己来写.我们用的是拼接sql字符串的方法来实现功能. 详细实现流程:首先将须要的数据存储到实体的list中,然后将这个li ...
- 六、SQL语句进行多条件查询,并解决参数为空的情况
一.SQL语句进行多条件查询,并解决参数为空的情况 QueryEntity query; var whereSql = new StringBuilder("Where 1=1") ...
- 【批量添加】-拼接sql字符串 标签: 批量添加 2015-12-13 17:49 2070人阅读 评论(33)
现在做的一个项目需要用到批量添加,但是封装的底层没有这个方法,所以自食其力,自己来写.我们用的是拼接sql字符串的方法来实现功能. 具体实现流程:首先将需要的数据存储到实体的list中,然后将这个li ...
- 查询拼接SQL语句,多条件模糊查询
多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...
- MyBatis中动态SQL语句完成多条件查询
一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...
随机推荐
- spring-cloud-Zuul学习(三)【中级篇】--Filter链 工作原理与Zuul原生Filter【重新定义spring cloud实践】
这里开始记录zuul中级进阶内容.前面说过了,zuul主要是一层一层的Filter过滤器组成,并且Zuul的逻辑引擎与Filter可用其他基于JVM的语言编写,比如:Groovy. 工作原理 Zuul ...
- [LeetCode] Buddy Strings 伙计字符串
Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...
- docker 安装 zookeeper
镜像下载hub.docker.com 上有不少 ZK 镜像, 不过为了稳定起见, 我们就使用官方的 ZK 镜像吧.首先执行如下命令: docker pull zookeeper当出现如下结果时, 表示 ...
- NPOI 修改指定单元格字体颜色
//创建一个字体颜色 IFont font = hssfworkbook.CreateFont(); //红色 font.Color = HSSFColor.Red.Index; //样式 ICell ...
- 二分- Count on Canton
题目: 代码: 是一个蛇形数列,把题目上的那组数倒过来看成一个正三角形. 第一行有1个数,1-2行有三个数,1-4行有6个数,1-4行有10个数,1-5行有15个数..... 现在要求第n个数是多少, ...
- monaco editor + vue的配置
monaco editor是vscode的御用编辑器. 功能非常强大,使用方便轻巧,对js\ts等等语言支持都良好,能方便的扩展以支持其他语言或者自定义的特性. 夸了这么多,这里只说它一个问题: 这货 ...
- new Date()设置日期在IOS的兼容问题
一般这样创建一个日期变量 var d = new Date("2017-08-11 12:00:00"); 发现在iOS中不兼容,返回valid Date. IOS中不支持 - 连 ...
- [Swift]LeetCode227. 基本计算器 II | Basic Calculator II
Implement a basic calculator to evaluate a simple expression string. The expression string contains ...
- [Swift]LeetCode452. 用最少数量的箭引爆气球 | Minimum Number of Arrows to Burst Balloons
There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...
- [Swift]LeetCode669. 修剪二叉搜索树 | Trim a Binary Search Tree
Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that a ...