Sql参数化,防止Sql注入

SqlParameter 类

表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射。无法继承此类。

命名空间:  System.Data.SqlClient

程序集:  System.Data(在 System.Data.dll 中)

Sql Server数据库

Sql参数化添加多条数据,废话不多说,上码

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    internal class Program
    {
        public static string _StrSql = "server=.;database=StuDB;uid=;pwd=";
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();//sql的存储容器
            var sqlParameter = new List<SqlParameter>();//为sql参数赋值
            for (int i = 0; i < 5; i++)
            {
                //参数需要唯一,故拼接上一个i
                string sql =string.Format($"insert into StuTB values(@Name{i},@Age{i});");
                sb.Append(sql);
                sqlParameter.Add(new SqlParameter("@Name" +i,"添加的数据"));
                sqlParameter.Add(new SqlParameter("@Age"+i, "123"));
            }
            ExecuteNonQuery(sb.ToString(),sqlParameter);//将拼接的sql一次性执行
        }
        /// <summary>
        /// 执行Sql
        /// </summary>
        /// <param name="sql">sql</param>
        /// <param name="sqlParameter">list<SqlParameter></param>
        public static void ExecuteNonQuery(string sql,List<SqlParameter> sqlParameter)
        {
            using (SqlConnection con=new SqlConnection(_StrSql))
            {
                con.Open();
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(sqlParameter.ToArray());
                cmd.ExecuteNonQuery();
                cmd.Clone();
            }
        }
    }
}

   cmd.Parameters.Add():添加一个参数。增加多个参数时,需要使用一个Foreach循环;
   cmd.Parameters.AddRange():添加一个参数的数组;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值