读书人

怎么区分SqlCommand .ExecuteScalar()

发布时间: 2013-03-01 18:33:02 作者: rapoo

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

读书人网 >C#

热点推荐