SQL参数化查询讲座 (四)

ADO.NET中,查询的一般过程是创建实现IDbConnection接口的连接对象,登录到相应数据库,再创建实现IDbCommand接口的命令对象执行SQL命令或存储过程。如果SQL语句有返回结果,则可以整表的方式接收数据或以逐行推进的方式遍历各条记录。在参数化查询中,创建命令对象后,为其指定SQL语句(或存储过程),然后创建SQL语句包含的各个参数,给参数赋值后再执行命令对象。

与命令对象关联的参数对象实现IDbDataParameter接口。在参数对象中,ParameterName 属性可设置或返回参数名称,Value 属性可设置或返回参数值,Direction属性指示是输入参数、输出参数还是输入输出参数,DbType属性定义参数的数据类型,其他几个属性可设置或返回参数特性。

命令对象有一个Parameters属性,它是实现IDataParameterCollection接口的集合类型,其中包含SQL语句(或存储过程)的所有参数。在集合中,可以通过名称或序号访问各个参数。通常,用命令对象的CreateParameter方法创建每个参数,再用IDataParameterCollection集合的Add方法添加进来。命令对象还有一个Prepare方法,用于生成并保存查询计划。

为了使大家对ADO.NET中的参数化查询有更清晰的认识,这里举一个特地简化的例子。在这个例子中,应用程序以信任连接的方式访问本地SQL Server服务器的School数据库(如果对信任连接不了解,可参考SQL Server联机手册)。数据库里面有一个数据表名为Students,包含3个数据列,其中Id列为数字类型,Name列为文本类型,Photo列为任意长的二进制数据(SQL Server 2005及以上版本支持任意长的二进制数据,在代码中,用-1表示长度不受限制)。示例代码向数据表插入2条记录,然后再查询其中一条记录。为了便于阅读,省略了处理异常的代码。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值