数据库IN查询参数化改造的方法
// 批量查询的 2019-05-14
if (!string.IsNullOrWhiteSpace(Request["userCodes"]))
{
string userCodes = Request["userCodes"].Replace("\r", "").Replace(",", ",").Replace(" ", "").Trim('\n').Trim();
userCodes = Regex.Replace(userCodes, "\n+", ",");
string[] userCodeArry = userCodes.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
// 需要去重
userCodeArry = userCodeArry.Distinct().ToArray(); // In内容没有参数化
// List<string> listCode = new List<string>();
//foreach (var item in userCodeArry)
//{
// listCode.Add(SecretUtilitiesBase.SqlSafeOrderBy(item));
//}
//listCondition.Add(" CODE IN (" + BaseBusinessLogic.ObjectsToList(listCode.ToArray(), "'") + ")"); // 2019-06-21 参数化改造,避免硬解析
List<string> codeParameters = new List<string>();
Dictionary<string, object> codeConditions = new Dictionary<string, object>();
foreach (var code in userCodeArry)
{
codeParameters.Add(dbHelper.GetParameter("P_" + code));
codeConditions.Add("P_" + code, code);
}
listCondition.Add(" CODE IN (" + codeParameters.Join(",").TrimStart(",").TrimEnd(",") + ")");
dbParameters = dbParameters.Concat(codeConditions).ToDictionary(k => k.Key, v => v.Value);
}
数据库IN查询参数化改造的方法的更多相关文章
- Oracle 数据库分页查询的三种方法
		一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ... 
- JDBC方式从数据库中查询数据并显示
		1.创建数据库表myuser DROP TABLE IF EXISTS `myuser`; CREATE TABLE `myuser` ( `) NOT NULL COMMENT '姓名', `id` ... 
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
		1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ... 
- MS数据库优化查询最常见的几种方法
		1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大 ... 
- 使用JDBC从数据库中查询数据的方法
		* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ... 
- 转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
		1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ... 
- MySQL、SqlServer、Oracle三大主流数据库分页查询
		在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法.可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用 ... 
- MySQL、SqlServer、Oracle三大主流数据库分页查询 (MySQL分页不能用top,因为不支持)
		一. MySQL 数据库 分页查询MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它 ... 
- 如何玩转跨库Join?跨数据库实例查询应用实践
		背景 随着业务复杂程度的提高.数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至选择不同的数据库类型以满足其业务需求.原本在同一数据库实例里就能实现的SQL查询,现在需要跨多 ... 
随机推荐
- BBR加速 Centos
			BBR是什么 BBR 是 Google 提出的一种新型拥塞控制算法,可以使 Linux 服务器显著地提高吞吐量和减少 TCP 连接的延迟. BBR项目地址 https://github.com/goo ... 
- 用Random产生1到10之间的一个随机数
			bat中怎样用Random产生1到10之间的一个随机数? 当然是用%random%,示例: @echo off rem 用Random产生1到10之间的一个随机数 set num=%random% s ... 
- 10.Redis 主从架构
			作者:中华石杉 Redis 主从架构 单机的 redis,能够承载的 QPS 大概就在上万到几万不等.对于缓存来说,一般都是用来支撑读高并发的.因此架构做成主从(master-slave)架构,一主多 ... 
- STP:生成树协议解决网络冗余问题
			STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作.但某些特定因素会导致STP失败,要排 ... 
- Odoo配置文件
			转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189223.html 
- Maven+SSM框架,实现单表简单的增删改查
			目录 1.创建web Maven项目 2.创建java源码文件和resources资源文件 3.创建数据库配置文件:jdbc.properties 4.项目总体目录: 5.添加spring配置文件:a ... 
- Ubuntu 18.04上安装Apache, MySQL, PHP, LAMP
			1.安装 Apache $ sudo apt update && sudo apt install apache2 中间会遇到停顿询问是否继续, 输入 y 然后 回车. 2.测试 Ap ... 
- 19、FTP服务器
			FTP (File Transfer Protocol) 文件传输协议的简称.主要用跨网络.跨平台的文件 传输. FTP 支持两种工作工作模式:主动模式.被动模式. 主动模式: 客户端使用 ... 
- Python3——根据m3u8下载视频(下)之requests
			下半场ING,好吧,本来准备明天写的(拖延真快乐.gif),请然而,,,早上八点多跑公司加班(看书+学习)去,发现大门上挂着一把大锁,我只想说门禁是拿来看的嘛,加啥破锁o(╥﹏╥)o,严重打击了好员工 ... 
- Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
			org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n ... 
