将参数传递给SQL,使您不必构建动态SQL字符串。
构建动态SQL语句具有巨大的安全风险,因为人们可以将自己的SQL代码注入到您的应用程序中,从而有可能对您的数据执行不需要的命令。
在以下位置有一些不错的可能的SQL Injection攻击示例:
SQL注入攻击示例
有两种向SQL语句传递参数的方法。一种是使用您提到的存储过程。另一种是使用参数化查询(实际上是我更喜欢的)。
在.NET中,参数化查询实际上非常容易:
using(SqlConnection conn = new SqlConnection(connString)){ SqlCommand command = new SqlCommand("SELECt * FROM Users WHERe Username = @Username", conn); command.Parameters.Add(new SqlParameter("@Username", "Justin Niessner")); SqlDataAdapter adapter = new SqlDataAdapter(command); DataTable dt = new DataTable(); adapter.Fill(dt);}
在该示例中,参数为
@Username,我们使用
Parameters了
SqlCommand对象的集合来传递值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)