ASP.NET参数化SQL语句(SQL SERVER)

设计项目时,为了防止SQL注入,有很多种方法,一种是通过编写存储过程来防止SQL注入,使用这种方法可以提高性能,但是对于查询语句可能存在多种不同的SQL语句,这就要编写很多存储过程,还有一种方法是通过参数化,在这里只介绍一下SQL SERVER的。

先来介绍查询:

普通的查询语句(未将密码加密):

 

select top 1* from adminDB where username='admin' AND password ='admin'


采用参数化方式后的:

 

select top 1* from adminDB where username=@USERNAME AND password =@PASSWORD

具体实现:

 

Select:

 

//实例化Connection对象 我的数据库名是Management
SqlConnection connection = new SqlConnection("server=.;database=Management;uid=sa;pwd='sadasds'"); 
//实例化Command对象 
SqlCommand command = new SqlCommand("select top 1* from adminDB where username=@USERNAME AND password=@PASSWORD); 
//第一种添加查询参数的例子 
command.Parameters.AddWithValue("@USERNAME", username); Management
SqlConnection connection = new SqlConnection("server=.;database=Management;uid=sa;pwd='sadasds'"); 
//实例化Command对象 
SqlCommand command = new SqlCommand("select top 1* from adminDB where username=@USERNAME AND password=@PASSWORD); 
//第一种添加查询参数的例子 
command.Parameters.AddWithValue("@USERNAME", username); 
command.Parameters.AddWithValue("@PASSWORD",password);
//实例化DataAdapter 
SqlDataAdapter adapter = new SqlDataAdapter(command); 
DataTable data = new DataTable();


Select带like的:

string strSql = "select * from adminDB where username like '%'+ @username + '%'";
SqlParameter[] Parameters=new SqlParameter[1];
Parameters[0] = new SqlParameter("@username", username);

Select带IN:

 

string strSql = "select * from adminDB where username in ('+@username+')";
SqlParameter[] Parameters = new SqlParameter[1];
Parameters[0] = new SqlParameter("@add", "aa,bb,cc,dd,ee,admin,peter,sam");

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值