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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SpiderManSun/article/details/65635480

设计项目时,为了防止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); 
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");






猜你喜欢

转载自blog.csdn.net/SpiderManSun/article/details/65635480