A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 穆玉明 中级黑马   /  2013-6-21 11:16  /  1727 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 穆玉明 于 2013-6-21 22:30 编辑

ExcuteScalar()方法ExcuteReader()方法ExcuteNonQuery()方法

三种区别是什么?该怎么用

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
1、ExecuteNonQuery方法。
该方法执行更新操作,即与UPDATE、INSERT、DELETE等语句有关的操作,在这种情况下,返回值是命令影响的行数。对其他语句,如SET或CREATE,则返回-1,如果发生回滚,返回值也是-1。

2、ExcuteReader方法。
它与查询命令一起使用,返回一个数据阅读器对象SqlDataReader类的一个实例。该方法执行更新语句,执行成功后,不会返回任何受影响的数据行。

3、ExecuteScalar方法。
如果只想检索数据库信息中的已个值,而不需要返回表或 数据流形式的数据库信息。例如,只需返回COUNT(*)、SUM(Price)或AVG(Quantity)等聚合函数的结果,该方法适合。如果在一个 常规的查询语句中调用该方法,则只读取第一行第一列的值,而丢弃所有其他值。


评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 Candy小烨 于 2013-6-21 11:54 编辑

ExcuteNonQuery()方法一般执行非查询语句 比如插入数据insert  更新数据update 和 删除数据delete 但是它也有返回值 就是影响的数据条数 比如插入了几条 更新了几条 删除了几条数据等等  

ExcuteReader()方法就是查询数据 他返回一个SqlDataReader 这个东西我也不知道叫什么  他把查询到的结果保存在服务器 你可以一条一条的读取 读取完最后一条 他会返回false


ExcuteScalar()方法用的比较少  我也不知道了                                         

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
1、ExecuteNonQuery方法。执行更新操作,返回值是命令影响的行数。
2、ExcuteReader方法。只向前,不能往后的。。取数据。
3、ExecuteScalar方法。返回首行首列。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
ExecuteNonQuery方法没有返回值,函数直接执行SQL语句,一般是插入、替换等命令

ExcuteScalar()方法和ExcuteReader()方法主要用来执行查询操作,一般都有返回值,返回查询结果

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马