ExecuteScalar 返回值问题
2016-01-16 10:14
344 查看
转自:http://www.cnblogs.com/zhycyq/archive/2012/08/31/2665316.html
DbCommand.ExecuteScalar 方法:
执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。
语法: public abstract Object ExecuteScalar() 返回值: 类型: System.Object,结果集中第一行的第一列。
备注: 使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。 与使用 ExecuteReader 方法然后使用 DbDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。如果找不到结果集中第一行的第一列;则返回 null 引用(在 Visual Basic 中为 Nothing)。 如果数据库中的该值为 null,此查询将返回 DBNull.Value。
对于查询单个字段,不包括函数的 select 语句,例如 select a字段 from 表A ,如果不存在值,DbCommand.ExecuteScalar 方法的返回值是 null,调用者需要使用 result == null 来判断。
对于使用函数的select 语句,例如select sum(a字段) from 表A,如果不存在值,DbCommand.ExceuteScalar 方法的返回值是 DBNull.Value,调用者需要用 result is DBNull 或者 result == DBNull.Value 来判断。
对 ADO.NET 的 DbCommand.ExecuteScalar 方法的调用者来说,要注意根据所使用的 SQL 语句来选择使用 result == null 还是使用 result is DBNull 来判断查询结果是否为空。如果使用 result == null || result is DBNull 来判断查询结果是否为空就更保险了,能够适应这两种 SQL 语句的写法,但是运行效率会有所降低。
DbCommand.ExecuteScalar 方法:
执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。
语法: public abstract Object ExecuteScalar() 返回值: 类型: System.Object,结果集中第一行的第一列。
备注: 使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。 与使用 ExecuteReader 方法然后使用 DbDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。如果找不到结果集中第一行的第一列;则返回 null 引用(在 Visual Basic 中为 Nothing)。 如果数据库中的该值为 null,此查询将返回 DBNull.Value。
对于查询单个字段,不包括函数的 select 语句,例如 select a字段 from 表A ,如果不存在值,DbCommand.ExecuteScalar 方法的返回值是 null,调用者需要使用 result == null 来判断。
对于使用函数的select 语句,例如select sum(a字段) from 表A,如果不存在值,DbCommand.ExceuteScalar 方法的返回值是 DBNull.Value,调用者需要用 result is DBNull 或者 result == DBNull.Value 来判断。
对 ADO.NET 的 DbCommand.ExecuteScalar 方法的调用者来说,要注意根据所使用的 SQL 语句来选择使用 result == null 还是使用 result is DBNull 来判断查询结果是否为空。如果使用 result == null || result is DBNull 来判断查询结果是否为空就更保险了,能够适应这两种 SQL 语句的写法,但是运行效率会有所降低。
相关文章推荐
- 所有Mac用户都需要知道的9个实用终端命令行<转>
- 在C++Builder2010中配置OpenCV2.2
- SDL附着window窗口的方法
- dedecms 网站优化技巧
- OpenCV中的内存泄露问题(cvLoadImage,cvCloneImage)【转】
- 在SQL 中 ntext和text类型的的区别
- OpenCV实现图像翻转
- 原来,英文可以这样去描述技术
- BZOJ 2064: 分裂|状压动规
- FFMpeg写MP4文件例子分析
- 文件的上传与下载
- NoSQL摘录
- sublime text3中几个常用的配置
- 使用FFMpeg进行H264编码
- 1391: [Ceoi2008]order|网络流
- opencv处理视频颠倒问题
- 飞龙的程序员书单 – 编程语言
- 图片阴影效果和影子效果
- 【Java】java中常见的日期操作(取值、转换、加减、比较)
- Spark调研笔记第2篇 - 怎样通过Sparkclient向Spark提交任务