select 1 这样返回的object是 1

select null 这样返回的是DBNull.Value

select isnull(null,1) 返回的是 1

select top 0 id from table1 这样返回的值是null

select isnull(id,0) from table1 where 1=0

返回的值是null

这里 ExecuteScalar

的规则就是,返回第一列,第一行的数据。假如第一列第一行不为空,那么ExecuteScalar就直接对应的DotNet的值。假如有第一行,但是第一列为空,那么返回的是

DBNull 。假如一行都没有,那么ExecuteScalar就返回null

规则就是这样的。这里容易犯的一个错误是,把ExecuteScalar返回DBNull和null的情况混淆,例如:

string

username=cmd.ExecuteScalar().ToString();

除非您认为cmd执行后,肯定至少有一行数据,否则这里就会出错。

又或 select id from usertable where username=@name

这样的sql语句,假如很难找到记录,那么ExecuteScalar则会返回null,所以千万不要

int

userid=Convert.ToInt32(cmd.ExecuteScalar());

或您会这样写 SQL 语句:select isnull(id,0) from

usertable where username=@name

但是 int

userid=Convert.ToInt32(cmd.ExecuteScalar());

依然会出错,因为上面的语句不成立时,仍然是不返回任何行。

对于IDbDataParameter(OleDDbParameter,SqlParameter..)的Value,假如为null,则代表该参数没有指定,或是代表DEFAULT。假如为DBNull.Value,则代表SQL中的NULL

所以,假如您要调用存储过程,里面有参数 @val

nvarchar(20)="AABB" ,

那么cmd.Parameters["@val"].Value=null 代表使用这个默认的

"AABB"

而cmd.Parameters["@val"].Value=DBNull.Value

代表使用NULL来传给 @val

您能够用Convert.IsDBNull来判断一个值是否DBNull。注意Convert.IsDBNull(null)是false。

以前总以为SqlCommand.ExecuteScalar()返回所影响的行数,MSDN上的解释SqlCommand.ExecuteScalar

方法

执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行,

今天用SQLHelper.ExecuteScalar()执行语句,判断记录是否存在,用的是int i =

Convert.toInt32(SqlHelper.ExecuteScalar(connectionstring,CommandType.Text."Sql"));可是总是提示无法进行格式转化,原来ExcuteScalar返回的是一个于结果集第一行相应数据类型的值,如果没有结果,返回的是NULL或者是DBNull.Value,可以用空值的判断方式

object obj = SqlHelper.ExecuteScalar();if (obj != null

&& obj !=

DBNull.Value){Response.Writer("有结果";}else{Response.Write("no

found");}

c# mysql executescalar为什么返回值是空_C#中ExecuteScalar的返回值DBNull和null的值别说明...相关推荐

  1. c# mysql executescalar为什么返回值是空_C#中ExecuteReader()、ExecuteNonQuery()、ExecuteScalar()方法的作用 | 学步园...

    ExecuteReader    将 CommandText 发送到 Connection 并生成一个 SqlDataReader    执行返回行的命令. 为了提高性能,ExecuteReader  ...

  2. c# mysql executescalar为什么返回值是空_当没有结果返回时处理ExecuteScalar()

    根据DbCommand.ExecuteScalar的MSDN文档 : 如果结果集中第一行的第一列未find,则返回null引用(在Visual Basic中为Nothing). 如果数据库中的值为空, ...

  3. 【SpringBoot整合Mybatis】数据库某字段值为空时,接口未返回该字段 解决办法

    [SpringBoot整合Mybatis]数据库字段为空时,接口不返回该字段 解决办法 问题描述: 排查问题: 解决问题: 测试: 参考资料: 今天整合项目的时候,发现了SpringBoot整合Myb ...

  4. asin c语言中 返回值范围_asin()_C语言asin()详解:反正弦函数,求反正弦值

    double asin(double x); asin() 函数的功能是求反正弦值. 反正弦函数 asin() 和正弦函数 sin() 的功能正好相反:sin() 是已知一个角的弧度值 x,求该角的正 ...

  5. python返回值return用法_Python中return函数返回值代码实例用法

    本篇文章小编给大家分享一下Python中return函数返回值代码实例用法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. return 添加返回值 r ...

  6. MySql数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)...

    查询表信息(表名/表描述): SELECT table_name name,TABLE_COMMENT value FROM INFORMATION_SCHEMA.TABLES WHERE table ...

  7. elasticsearch 根据条件去除重复值_Excel工作表中的条件格式,不只是查找重复值,还有7种典型用法...

    Excel工作表中的[条件格式],对于大部分亲来说并不陌生,用的最多的应该是标识"重复值"或"唯一值",其实还有数据可视化等多种功能-- 一.Excel条件格式 ...

  8. mysql的decimal保留两位小数_C#中的decimal怎么保留两位小数

    展开全部 在C语言中编写如下程序: 1.decimal d = 0.234M: 2. *保留小数后两位*(注释) 3.d=Math.Round(d,2): 最终结果为:d=0.23,即为6261696 ...

  9. html ios返回后刷新页面,Ios中微信页面返回上一页去除缓存几种常见思路

    前言 这篇文章和第,.年过事工宗据指数遍互业经搞断果会主要讲解决思路,不对各种概念进行抖要支圈者器说是事天开的.年后编定功口小发还应久剑过多讲解. 问题描述 开发微信H5页面的时候,在Ios微信内置浏 ...

最新文章

  1. 开源项目哪家强?Github年终各大排行榜超级盘点(内附开源项目学习资源)
  2. RHEL 5基础篇—文件和目录的管理
  3. Codeforces Round #361 (Div. 2) B. Mike and Shortcuts bfs
  4. 全球及中国烯丙基硫脲行业十四五需求产量及投资规模预测报告2022版
  5. 网络发现不了计算机 但是输入IP可以看到,启用了网络发现为什么还是发现不了其他计算机 其他计算机也发现不了我...
  6. redmine1.3.x 插件安装
  7. HarmonyOS之生物特征识别的功能和使用
  8. ftp之高级配置——虚拟用户
  9. 如何使用JavaScript中的工厂函数构建可靠的对象
  10. 获取Spring容器管理的Bean工具类
  11. 【Siddhi】Syntax error in SiddhiQL, no viable alternative at input
  12. android 线程池 怎么用,android中的线程池 怎么用
  13. c# checkbox 外观_2020款日产蓝鸟上市!外观比大众朗逸漂亮,油耗6L 国六,9.59万_搜狐汽车...
  14. 计算机软件行业代码,行业代码大全.docx
  15. linux串口dma,详解linux dma驱动编写
  16. 《开源安全运维平台-OSSIM最佳实践》于2016年1月出版
  17. sd,sdhc,sdxc
  18. CentOS 7.6 编译安装最新版本glibc2.30 实录
  19. 微信公众号的申请以及测试号的申请
  20. 5大巨头入场瓜分3万亿市场!加密世界vs.互联网史诗战争将打响!

热门文章

  1. 100句唤醒自己的励志名言
  2. Vue中img动态绑定图片的地址
  3. php 中级代码大全(本教程需要一定基础)
  4. 2021年材料员-通用基础(材料员)考试报名及考试资料模拟训练
  5. cookie设置域名问题,cookie跨域
  6. 朋友入职字节跳动,测开岗,分享面试经验,大厂版测试笔记分享
  7. idea pom cpu占有率_组装电脑哪个CPU好?如何选择CPU?2020年CPU推荐及分析。
  8. IT男的”幸福”生活续5
  9. 震惊了!每30秒学会一个Python小技巧,Github星数4600+
  10. CDOJ 1639 Fruit Ninja