C# sqlserver 参数化 in、like的传值方法

C#写的程序中,与sqlserver数据库链接,我们为了防止sql注入,要将sql语句参数化。

但in 和like 因为符号问题,要处理一下

参考了一个大佬的教程,完全拿过来用 没问题!

链接:C# 参数化SQL语句中的like和in (shuzhiduo.com) https://www.shuzhiduo.com/A/x9J2xY6Vd6/

 

IN:

string ids = "1,2,33,32";
string sql = "exec('SELECT * FROM [dbo].[UserGroup] WHERE id in('+@IDs+')')";
SqlParameter[] parameters = {
new SqlParameter("@IDs", SqlDbType.NVarChar,-1)};
parameters[0].Value = ids;

DataSet ds= DbHelperSQL.Query(sql,parameters);

 

LIKE方法一:

string strSql = "SELECT * FROM [dbo].[UserGroup] WHERE id like @id+ '%'";
SqlParameter[] parameters = {
new SqlParameter("@id", SqlDbType.NVarChar,-1)};
parameters[0].Value = "1";
DataSet ds = DbHelperSQL.Query(strSql, parameters);

上边是like ‘key%’

如果是like ‘%key%’,就用string strSql = "SELECT * FROM [dbo].[UserGroup] WHERE id like  '%' + @add + '%'";

 

LIKE方法二:

string sql=“SELECT * FROM [dbo].[UserGroup] WHERE id like @id ”;

List<SqlParameter> ilistStr = new List<SqlParameter>();
ilistStr.Add(new SqlParameter("@id ", "%" + ID+ "%"));
DataSet ds = DbHelperSQL.Query(sql, ilistStr.ToArray());

 

posted on   张不胖  阅读(1562)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-04-27 .net 时间戳

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示