ado.net参数化查询

 在 Web 应用程序的开发过程中,Web 安全是非常重要的,现存的很多网站也都存在一
些非常严重的安全漏洞,其中SQL 注入是非常常见的漏洞,如果将查询语句进行参数化查
询,可以减少SQL 注入漏洞的概率,参数化查询示例代码如下所示。

string strsql = "select * from mynews where id= @id"

上述代码使用了参数化查询,在存储过程中,参数化是非常常见的,存储过程通过
Command 对象进行参数的添加和赋值。同样,参数化查询也可以通过Command 对象进行
添加和赋值,参数化查询过程如下所示。
 创建一个 Command 对象。
 Command 对象增加一个参数。
 通过索引对 Command 参数进行赋值。
第一篇窗口与界面编程 267
 执行 ExecuteReader 方法返回个DataReader 对象。
通过 Command 对象可以为存储过程,以及参数化查询语句进行参数的添加,示例代码
如下所示。
protected void Page_Load(object sender, EventArgs e)
{
string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";
SqlConnection con = new SqlConnection(str);
con.Open();
string strsql = "select * from mynews where id = @bh";
SqlCommand cmd = new SqlCommand(strsql, con); //创建Command 对

cmd.Parameters.Add("@bh", SqlDbType.Int); //增加参数@bh
cmd.Parameters[0].Value = 4; //通过索引为参数赋

SqlDataReader dr = cmd.ExecuteReader(); // 执行后返回
DataReader 对象
while (dr.Read()) //遍历DataReader
对象
{
Response.Write(dr["title"].ToString()+"<hr>");
}
}
参数化查询能够有效的解决一些安全问题,提高Web 应用的安全性。同时,参数化查
询能够极大的简化程序设计。只需要通过数值的更改而不需要修改SQL 语句,极大的方便
了应用程序的维护。
注意:如果未初始化Parameter 数据类型的属性,但设置了Value 属性,那么Parameter
会自动选择合适的数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值