当前位置: 首页 > news >正文

C# SqlSugar 如何使用Sql语句进行查询,并带参数进行查询,防注入

一般ORM查询单表数据已经是很简单的一种方式了

详情可以看我的另一篇文章:ORM C# 封装SqlSugar 操作数据库_sqlsugar 基类封装-CSDN博客

下面是介绍有些数据是需要比较复杂的SQL语句来进行查询的时候,则需要自行组装SQL语句来进行查询,下面介绍的是 组装SQL查询语句并获取数据的一个示例。

用参数化查询是为了防SQL注入,一般是不建议直接用字符串的方式拼接字符串的。

下面代码已经有注释了,都能看懂,希望能帮助到大家。

            //查询语句组装StringBuilder sqlStr=new StringBuilder();//参数列表List<SugarParameter> parameters = new List<SugarParameter>();//主表查询sqlStr.Append("SELECT *  FROM t_material ");//拼装Where条件string where = string.Empty;if(!string.IsNullOrEmpty(mCode)){//如果编号不为空,则添加条件where += " MaterialCode=@mCode AND";//参数列表也同时添加parameters.Add(new SugarParameter("@mCode",mCode));}if (!string.IsNullOrEmpty(mName)){//名称进行模糊查询where += " MaterialName LIKE @mName AND";//参数中添加%parameters.Add(new SugarParameter("@mName", $"%{mName}%"));}if(notShowZero){//此处是判断其他表的一些限制条件  判断库存数量大于0where += " MaterialCode IN (SELECT MaterialCode FROM t_materialstock WHERE StockNum>0) AND";}if(!string.IsNullOrEmpty(where)){//如果Where条件不为空,则添加WHERE sqlStr.Append(" WHERE ");//删除最后的AND字符where = where.TrimEnd(new char[] { 'A', 'N', 'D' });sqlStr.Append(where);}//添加SQL语句var sql= base.DB.SqlQueryable<t_material>(sqlStr.ToString());//添加参数sql.AddParameters(parameters);//最后一个分页查询return sql.ToPageList(page,pageSize,ref total);

相关文章:

C# SqlSugar 如何使用Sql语句进行查询,并带参数进行查询,防注入

一般ORM查询单表数据已经是很简单的一种方式了 详情可以看我的另一篇文章&#xff1a;ORM C# 封装SqlSugar 操作数据库_sqlsugar 基类封装-CSDN博客 下面是介绍有些数据是需要比较复杂的SQL语句来进行查询的时候&#xff0c;则需要自行组装SQL语句来进行查询&#xff0c;下面…...

slf4j日志框架和logback详解

slf4j作用及其实现原理 SLF4J&#xff08;Simple Logging Facade for Java&#xff09;是一种日志框架的抽象层&#xff0c;它并不是一个具体的日志实现&#xff0c;而是一个接口或门面&#xff08;Facade&#xff09;&#xff0c;旨在为各种不同的日志框架提供一个统一的API。…...

解决@Data与@Builder冲突的N种策略

前言 在Java项目中&#xff0c;Lombok的Data和Builder注解因其便捷性深受开发者喜爱&#xff0c;但两者并用时可能引发构造方法冲突。本文将全面解析这一问题的根源&#xff0c;并介绍包括利用实验性思路探讨的Tolerate概念在内的多种解决方案&#xff0c;确保您在实践中游刃有…...

一文看懂LUT(Lookup Table)查找表

文章目录 原理方法具体步骤和代码实现 查找表&#xff08;Lookup Table&#xff0c;LUT&#xff09;方法是一种通过预先计算并存储函数值来加速计算的方法。对于激活函数&#xff08;例如ReLU&#xff09;&#xff0c;使用LUT可以在一定范围内通过查找预计算的值来近似函数计算…...

06 人以群分 基于邻域的协同过滤算法

这一讲我们将正式进入算法内容的学习。 推荐算法本质 推荐算法本质上是一一种信息处理方法&#xff0c;它将用户信息和物品信息处理后&#xff0c;最终输出了推荐结果。因为 05 讲中基于热门推荐、基于内容推荐、基于关联规则推荐等方法比较粗放&#xff0c;所以推荐结果往往…...

SQL性能下降的原因

一、SQL性能下降的原因 主要是性能下降SQL慢、执行时间长、等待时间长 不是一条SQL抓出来就要优化&#xff0c;在真实的生产环境下这种故障第一个要去复线&#xff0c;有可能去排查的时候没&#xff0c;所以没法复线。 可能需要它跑半天或者一天来缩小筛查的范围&#xff0c…...

js的原型

原型&#xff1a; 1定义&#xff1a;原型是function对象的一个属性&#xff0c;它定义了构造函数制造出的对象的公共祖先。 通过该构造函数产生的对象&#xff0c;以继承该原型的属性和方法。原型也是对象。 2.利用原型特点和概念&#xff0c;可以提取共有属性。 3.对象如…...

FastAPI 学习之路(三十七)元数据和文档 URL

实现前的效果 那么如何实现呢&#xff0c;第一种方式如下&#xff1a; from routers.items import item_router from routers.users import user_router""" 自定义FastApi应用中的元数据配置Title&#xff1a;在 OpenAPI 和自动 API 文档用户界面中作为 API 的…...

C 语言结构体

本博客涉及的结构体知识有&#xff1a; 1.0&#xff1a;结构体的创建和使用 2.0: typedef 关键字与#define 关键字的区别 3.0: 结构体成员的访问【地址访问与成员访问】 4.0: 结构体嵌套调用 5.0 数组访问赋值结构体成员 ...... 1.0&#xff1a;结构体的创建和使用 结…...

MySQl高级篇-主从复制

主从复制 复制的基本原理 slave会从master读取binlog来进行数据同步 MySQL复制过程分成三步&#xff1a; master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件&#xff0c;binary log events;slave将master的binary log events拷贝到它的中继日志(r…...

JMeter案例分享:通过数据验证的错误,说说CSV数据文件设置中的线程共享模式

前言 用过JMeter参数化的小伙伴&#xff0c;想必对CSV Data Set Config非常熟悉。大家平时更关注变量名称&#xff0c;是否忽略首行等参数&#xff0c;其余的一般都使用默认值。然而我最近遇到一个未按照我的预想读取数据的案例&#xff0c;原因就出在最后一个参数“线程共享模…...

数学建模·Topsis优劣解距离法

Topsis优劣解 一种新的评价方法&#xff0c;特点就是利用原有数据&#xff0c;客观性强。 相较于模糊评价和层次评价 更加客观&#xff0c;充分利用原有数据&#xff0c;精确反映方案差距 基本原理 离最优解最近&#xff0c;离最劣解越远 具体步骤 正向化 代码与原理与熵权…...

数学建模中常用的数据处理方法

常用的数据处理方法 本文参考 B站西电数模协会的讲解视频 &#xff0c;只作笔记提纲&#xff0c;想要详细学习具体内容请观看 up 的学习视频。国赛的 C 题一般数据量比较大。 这里介绍以下两种方法&#xff1a; 数据预处理方法 数据分析方法 数据预处理方法 1. 数据清洗 为…...

C嘎嘎:函数模版和类模版

目录 泛型编程 函数模版 函数模版概念 函数模版的格式 函数模版的原理 函数模版的实例化 函数参数的匹配原则 类模版 类模版的定义格式 类模版的实例化 泛型编程 如何实现一个通用的交换函数呢 void Swap(int& left, int& right) {int temp left;left rig…...

使用 Apache Pulsar 构建弹性可扩展的事件驱动应用

本视频来自 2024 Apache Pulsar 欧洲峰会&#xff0c;由 David Kjerrumgaard, 《Pulsar in Action》书作者给大家带来的《使用 Apache Pulsar 构建弹性可扩展的事件驱动应用》分享。 嘉宾&#xff5c;David Kjerrumgaard&#xff0c;Apache Pulsar Committer&#xff0c;《Pul…...

【国产开源可视化引擎Meta2d.js】视频

视频 meta2d 支持Html音视频。 // 音频 const pen {name: video,x: 100,y: 100,width: 100,height: 10,audio: https://down.ear0.com:3321/preview?soundid37418&typemp3,autoPlay: true, }; meta2d.addPen(pen); meta2d.inactive();// 视频 const pen {name: video,x…...

零信任网络安全

随着数字化转型的发生&#xff0c;网络边界也在不断被重新定义&#xff0c;因此&#xff0c;组织必须使用新的安全方法重新定义其防御策略。 零信任是一种基于“永不信任&#xff0c;永远验证”原则的安全方法&#xff0c;它强调无论在公司内部或外部&#xff0c;任何用户、设…...

Python酷库之旅-第三方库Pandas(022)

目录 一、用法精讲 55、pandas.lreshape函数 55-1、语法 55-2、参数 55-3、功能 55-4、返回值 55-5、说明 55-6、用法 55-6-1、数据准备 55-6-2、代码示例 55-6-3、结果输出 56、pandas.wide_to_long函数 56-1、语法 56-2、参数 56-3、功能 56-4、返回值 56-5…...

数据建设实践之大数据平台(一)准备环境

大数据组件版本信息 zookeeper-3.5.7hadoop-3.3.5mysql-5.7.28apache-hive-3.1.3spark-3.3.1dataxapache-dolphinscheduler-3.1.9大数据技术架构 大数据组件部署规划 node101node102node103node104node105datax datax datax ZK ZK ZK RM RM NM...

VUE2用elementUI实现父组件中校验子组件中的表单

需求是VUE2框架用elementUI写复杂表单组件&#xff0c;比如&#xff0c;3个相同功能的表单共用一个提交按钮&#xff0c;把相同功能的表单写成一个子组件&#xff0c;另一个父组件包含子组件的重复调用和一个提交按钮&#xff0c;并且要求提交时校验必填项。 注意&#xff1a; …...

Android Studio中文语言包快速上手实用指南

Android Studio中文语言包快速上手实用指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack Android Studio作为主流的Android开发…...

MGeo中文地址解析模型惊艳案例:‘哈尔滨市南岗区西大直街92号哈尔滨工业大学一校区’精准识别

MGeo中文地址解析模型惊艳案例&#xff1a;‘哈尔滨市南岗区西大直街92号哈尔滨工业大学一校区’精准识别 1. 引言&#xff1a;从混乱的地址文本到清晰的结构化信息 想象一下&#xff0c;你收到一条用户留言&#xff1a;“货送到哈尔滨市南岗区西大直街92号哈尔滨工业大学一校…...

【CAPL实战】LIN校验和自动化测试:从函数解析到脚本验证

1. LIN校验和的核心概念与CAPL函数解析 第一次接触LIN总线校验和测试时&#xff0c;我也曾被各种专业术语绕得头晕。简单来说&#xff0c;校验和就像是给数据包贴上的"防伪标签"——当LIN报文从主机发往从机时&#xff0c;这个标签能帮我们确认数据在传输过程中是否…...

如何构建跨平台漫画阅读器Venera:从零开始实现本地与网络漫画管理

如何构建跨平台漫画阅读器Venera&#xff1a;从零开始实现本地与网络漫画管理 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 作为一名漫画爱好者&#xff0c;你是否曾为找不到合适的阅读工具而烦恼&#xff1f;本地漫画文件…...

SEO 白帽优化的费用一般是多少

SEO 白帽优化的费用一般是多少&#xff1f; 在当今互联网时代&#xff0c;网站的排名直接影响到访问量和商业收益。其中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是提升网站在搜索结果中排名的重要手段。而在SEO中&#xff0c;白帽优化&#xff08;White Hat SEO&…...

MTKClient全平台高效应用指南:从环境配置到设备交互的实战方案

MTKClient全平台高效应用指南&#xff1a;从环境配置到设备交互的实战方案 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient作为联发科设备刷机与调试的专业工具&#xff0c;提供跨…...

Phi-3-mini-4k-instruct-gguf GPU算力优化:q4 GGUF模型在消费级显卡上的表现

Phi-3-mini-4k-instruct-gguf GPU算力优化&#xff1a;q4 GGUF模型在消费级显卡上的表现 1. 模型概述 Phi-3-mini-4k-instruct-gguf 是微软Phi-3系列中的轻量级文本生成模型GGUF版本&#xff0c;专为问答、文本改写、摘要整理和简短创作等场景优化。这个经过量化的q4 GGUF模型…...

Kubernetes StatefulSet 完全指南,SOFA 架构--01--简介。

StatefulSet 的核心概念 StatefulSet 是 Kubernetes 中用于管理有状态应用的控制器&#xff0c;确保 Pod 具有稳定的网络标识和持久化存储。每个 Pod 拥有唯一的名称和持久化卷声明&#xff08;PVC&#xff09;&#xff0c;即使重启或重新调度也不会改变。 稳定网络标识的作用 …...

.py域名注册对SEO有什么影响吗_.py域名注册在哪里可以办理

.py域名注册对SEO有什么影响吗 在现代互联网时代&#xff0c;域名选择对网站的SEO&#xff08;搜索引擎优化&#xff09;表现有着重要的影响。而最近&#xff0c;一种新型的域名扩展名——.py域名&#xff0c;开始受到越来越多的关注。.py域名注册对SEO有什么影响呢&#xff1…...

无需代码:用星图AI云+Clawdbot搭建私有化Qwen3-VL:30B飞书助手

无需代码&#xff1a;用星图AI云Clawdbot搭建私有化Qwen3-VL:30B飞书助手 1. 项目概述与价值 1.1 为什么选择这个方案 在当今企业办公场景中&#xff0c;智能助手已经成为提升效率的关键工具。但大多数方案存在两个痛点&#xff1a;要么功能单一&#xff08;仅支持文本&…...