拼接多条件SQL思维

1、界面

二、代码示例(提供一种思维,根据实际情况还需改造)

 1         private void button1_Click(object sender, EventArgs e)
 2         {
 3             StringBuilder sbSql = new StringBuilder("select * from student ");
 4             List<string> wheres = new List<string>();
 5             List<SqlParameter> parameters = new List<SqlParameter>();
 6             foreach (Control ct in panel1.Controls) //遍历容器中的集合
 7             {
 8                 //这里只介绍一种思维方式,具体逻辑还需改造方法
 9                 if (ct is TextBox) //文本框
10                 {
11                     wheres.Add(" "+ct.Name+" like @"+ct.Name+" "); //ct.Name:获取控件的Name属性,必须有命名规则,和数据库字段相同
12                     parameters.Add(new SqlParameter("@"+ct.Name+"","‘%"+ct.Text.Trim()+"%‘"));
13                     continue;
14                 }
15                 if (ct is CheckBox)
16                 {
17                     //复选框
18                 }
19                 if (ct is DateTimePicker)
20                 {
21                     //日期控件
22                 }
23                 if (ct is ComboBox)
24                 {
25                     //下拉框
26                 }
27             }
28             //开始多条件搜索拼接
29             if (wheres.Count>0) //有值
30             {
31                 sbSql.Append(" where ");
32                 sbSql.Append(string.Join(" and ",wheres.ToArray())); //调用字符串连接 string.Join
33             }
34             MessageBox.Show(sbSql.ToString()); //多条件拼接SQL成功!
35         }

原文地址:https://www.cnblogs.com/chenyanbin/p/10850964.html

时间: 2024-10-24 16:24:12

拼接多条件SQL思维的相关文章

C# -- lambda表达式转为where条件sql语句的方法

我们在开发时,一般都会编写自已的数据库帮助类,如:DbHelper.DbHelper类中可能都有类拟有:一个根据条件查询得到一个实体集的方法: /// <summary> /// 根据条件语句 ,查实体列表集 /// 调用:如Users实体:字段:ID.Name /// List<Users> list = GetListByWhereString <Users>(" Id >0 and Name like 'FengCodes%' "); /

Java下拼接执行动态SQL语句(转)

在实际业务中经常需要拼接动态SQL来完成复杂数据计算,网上各类技术论坛都有讨论,比如下面这些问题: http://bbs.csdn.net/topics/390876591 http://bbs.csdn.net/topics/390981627 https://www.linkedin.com/groups/SQL-Query-Help-needed-137774.S.5948812806903119877?trk=groups_items_see_more-0-b-ttl http://bb

Java下拼接执行动态SQL语句

Java拼接动态SQL的一般做法有       1.使用动态语句 很多数据库都提供了处理动态SQL的语法,如Oracle的EXECUTE IMMEDIATE语句.MSSQL的EXEC和SP_EXECUTESQL.Mysql的预处理语句等.这些功能让我们在数据库端来处理动态查询提供了极大遍历,但这种方式只适用于相对简单地动态查询,复杂的情况经常会采用下面的方式. 2.使用存储过程 对于复杂的情况,一般会在存储过程中来拼接动态SQL.使用存储过程完成相对灵活,但编码复杂度过高,有时运行效率较低. 3

dedecms有条件sql注入(x0day)

https://www.t00ls.net/thread-35569-1-1.html http://localhost/dedecms/plus/advancedsearch.php?mid=1&_SESSION[123]=select concat(0x7c,userid,0x7c,pwd,0x7c) as aid from `%[email protected]__admin` aaa &sqlhash=123 条件利用: 1.漏洞代码在/plus/advancedsearch.ph

条件sql ibatis

<!-- 多条件查询 --><select id="MS-CUSTOM-PANDECT-INFO-BY-CONDITIONS" resultMap="RM-CUSTOM-PANDECT-INFO-ORDER"> select t.*, d.real_name sale_name from (SELECT custom_id ,real_name ,user_name ,type ,account_name ,under_investor ,r

sql思维

写sql的思路不同于常规编程语言(C.python)等等.前者,考虑如何一步步地得到最终答案:后者,考虑如何一步步地收缩数据范围. 简而言之,前者是面向过程化(for each row do x),后者是面向集合(do all -> another all). 具体来讲,写sql从两种角度考虑: 一.集合 首先考虑,要得到正确结果,需要把哪些表,以何种形式连接起来: 对连接之后的大集合,做怎么样的过滤 (where.having) 根据需要做出合适的投影 (select) 可能需要重复前面三步

oracle(天猫处方药留言sql)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" ><sqlMap namespace="TmallTcMessage">

python中实现字符串使用非&quot;+&quot;号拼接的方式实现

在脉脉上看到一片在程序中对字符串拼接的实现,不用+号如何完成字符串拼接,大概看了下评论,大部分都是说在java中实现不使用+号,完成字符串的拼接操作,在此之前我也是安装以往经验for循环遍历列表使用+号完成字符串拼接操作,今天尝试使用非+号完成字符串的拼接操作,一下拼接一个条件sql的拼接实现 例句sql是链接到hive库进行的查询操作代码如下 imsis = ('460020291****15', '46002029****6391') # 构造新数列 # i = "(" # for

php 分页查询

get方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Co