如何区分SqlCommand .ExecuteScalar()的值
ExecuteScalar()主要执行返回单一值的查询。
那我想问,如何区分,此方法是没有获取到值呢,还是获取到的值是空
比如:
SELECT 邮箱 FROM 会员信息 WHERE 用户名='张三'
如果ExecuteScalar()方法的结果为空,到底是没有张三这个人呢,还是张三没有邮箱
------解决方案--------------------SELECT count(邮箱) FROM 会员信息 WHERE 用户名='张三'
返回1就是有这个人
------解决方案--------------------cmd.CommondText="SELECT 邮箱 FROM 会员信息 WHERE 用户名='张三'";
object res=cmd.ExecuteScalar();
if(res==null
------解决方案-------------------- res==System.DBNull.Value)
MessageBox("张三的邮箱为空!");
else
MessageBox("张三的邮箱是:" + res.ToString());
------解决方案--------------------如果查不到,好像是返回null,也有可能是返回DBNull,你两个都判断就行了,
改一下楼上的代码:
object res=cmd.ExecuteScalar();
if(res==null
------解决方案-------------------- res is DBNull)
{
}
else
{
}
------解决方案--------------------没有记录是null, 有记录字段是null值返回DBNull.Value