ExecuteScalar 返回值问题

DbCommand.ExecuteScalar 方法:

            执行查询,并返回查询所返回的结果集中第一行的第一列。 所有其他的列和行将被忽略。
            返回值: 类型: System.Object。
            如果找不到结果集中第一行的第一列;则返回 null 引用。 如果数据库中的该值为 null,此查询将返回 DBNull.Value。

            对于使用函数的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 语句的写法,但是运行效率会有所降低。
原文地址:https://www.cnblogs.com/sdpdf/p/4322502.html