首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么区分SqlCommand .ExecuteScalar()的值

2013-03-01 
如何区分SqlCommand .ExecuteScalar()的值ExecuteScalar()主要执行返回单一值的查询。那我想问,如何区分,此

如何区分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

热点排行