数据库IN查询参数化改造的方法
2024-09-06 12:04:15
// 批量查询的 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);
}
最新文章
- GitHub上值得关注的iOS开源项目
- asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码
- 麦克斯韦方程组 (Maxwell&#39;s equation)的简单解释
- 【转】BitKeeper与Linux,git史前琐事
- jQuery应用之(一)使用jQuery选择器(荐)
- MATLAB学习笔记(三)&mdash;&mdash;程序设计
- 高扩展的基于NIO的服务器架构(二)
- WisDom.Net 框架设计(七) 验证框架
- Jenkins pipeline:pipeline 语法详解
- selenium + python + nwjs
- defer、return、返回值,这三者的执行逻辑
- 网页三剑客:HTML+CSS+JavaScript 之 HTML的概述
- vue 解决双向绑定中 父组件传值给子组件后 父组件值也跟着变化的问题
- 【Jmeter基础知识】Jmeter的三种参数化方式
- [翻译]C# BAD PRACTICES: Learn how to make a good code by bad example---C#:如何将坏的代码重新编译为好的代码
- 项目中经常用到的JavaScript方法
- iOS开发-按钮的基本使用
- 【WePY小程序框架实战二】-页面结构
- 理解PV操作和信号量
- Android API之android.view.View.MeasureSpec