转自:http://blog.csdn.net/liuzuofei/archive/2008/01/15/2044744.aspx
ExecuteScalar这个方法本来的目的是只反回数据集的第一行第一列。
但是当表中的记录为空时,没有经验的同志会直接这样做:
object
val
=
cmd.ExecuteScalar();
if (val == null ) ... {} .......
if (val == null ) ... {} .......
实际这样做是错误的,因为val永远不会==null。
真正的原因是没有区分数据库的null和0记录。
因此正确的做法如下:
object
val
=
cmd.ExecuteScalar();
if (val == System.DBNull.Value) { val = null ; }
if (val == System.DBNull.Value) { val = null ; }
特在此标记一下!