首页 > 数据库 >C#_防止SQL注入的参数化格式Where条件

C#_防止SQL注入的参数化格式Where条件

时间:2023-09-08 10:47:23浏览次数:41  
标签:string C# Where whereBuilder SQL null parameter public Append

public class WhereBuilder
{
    private readonly StringBuilder _whereBuilder = new StringBuilder();
    private readonly List<SugarParameter> _parameter = new List<SugarParameter>();

    public void Append(string s) => Append(s, null, null);

    public void Append(string s, string parameterName, object parameter)
    {
        if (_whereBuilder.Length > 0)
        {
            _whereBuilder.Append(" and " + s);
        }
        else
        {
            _whereBuilder.Append(" where " + s);
        }

        if (!string.IsNullOrEmpty(parameterName))
        {
            _parameter.Add(new SugarParameter(parameterName, parameter));
        }
    }

    public override string ToString() => _whereBuilder.ToString();

    public void Build(out string whereSql, out SugarParameter[] parameters)
    {
        whereSql = ToString();

        if (_parameter.Any())
        {
            parameters = _parameter.ToArray();
        }
        else
        {
            parameters = null;
        }
    }
}

标签:string,C#,Where,whereBuilder,SQL,null,parameter,public,Append
From: https://www.cnblogs.com/eaknow/p/17686906.html

相关文章

  • Tomcat架构学习
    1、Tomcat的两个核心功能:处理Socket连接,负责负责网络字节流与Request和Response对象的转化。加载和管理Servlet,以及处理具体Request请求。Tomct设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责对内处理。单独的连接器或者容......
  • CF232B Table
    2023-08-0716:29:49题意有一个\(n\timesm\)的矩阵,求使得每个\(n\timesn\)的矩阵中都有正好\(k\)个点的方案数,方案数对\(1e9+7\)取模。\(1\len\le100,n\lem\le10^{18},0\lek\len^2\)。思路通过观察样例并且自己手玩了一些数据后,我们发现,假设第\(i\)列放了\(k\)......
  • 循环冗余校验(CRC)算法入门引导
    写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,......
  • mac mysql无法启动
    背景:在mac上装了mysql后无法启动,报错如下: 解决步骤:1.修改mysql配置文件,飘红的为修改部分(/usr/local/etc/my.cnf)#DefaultHomebrewMySQLserverconfig[mysqld]#Onlyallowconnectionsfromlocalhostbind-address=127.0.0.1#mysqlx-bind-address=127.0.0.1   #......
  • springboot - idea - active: @profileActive@ 有时候 不识别 @ 导致启动失败
    1.背景有时候正常,有时候不行,特别是maven执行了clean命令后 2.解决右键执行一下这个即可 ......
  • 学习使用双指针(leetcode)
    一、K和数对的最大数目(JAVA)给你一个整数数组nums和一个整数k。每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。示例1:输入:nums=[1,2,3,4],k=5输出:2解释:开始时nums=[1,2,3,4]:-移出1和4,......
  • Apktool编译时报error: No resource identifier found for attribute XXX in package
    问题描述使用apktool编译android源码时,报W:XXX.xml:X:error:Noresourceidentifierfoundforattribute'iconTint'inpackage'android'错误。解决方案这是由于API版本较低。处理方法:找到相应文件,把对应的属性删除掉,再重新编译。......
  • 转:pytorch RoIAlign函数的用法
    图解RoIAlign以及在PyTorch中的使用(含代码示例)_虾米小馄饨的博客-CSDN博客如何在你自己的代码中使用ROIPool和ROIAlign(PyTorch1.0)_ronghuaiyang的博客-CSDN博客 ......
  • ElasticSearch的常规增删改查操作
    一、Restful简介RESTFul:RepresentationalStateTransfer,中文意思:表现层状态转化。变现层指的是资源的表现层,这里的资源是指网络上的信息,比如一张图片,一段文本,一步电影,那么每个资源在网络上都有一个标识,可以理解为一个ID,每个资源都有一个ID去表示它,这个ID就称之为URL。当我们给了......
  • macOS Ventura 13.5.2 (22G91) Boot ISO 原版可引导镜像下载 (修复零日漏洞)
    macOSVentura13.5.2(22G91)BootISO原版可引导镜像下载(修复零日漏洞)2023年9月7日(北京时间8日凌晨)macOSVentura13.5.2(22G91)发布,此次为安全更新,主要修复了零日漏洞CVE-2023-41064CVE-2023-41061。这些漏洞修复的更新也包含在同日发布的iOS16.6.1、iPadOS......