ExecuteScalar()主要执行返回单一值的查询。那我想问,如何区分,此方法是没有获取到值呢,还是获取到的值是空比如:
SELECT 邮箱 FROM 会员信息 WHERE 用户名='张三'如果ExecuteScalar()方法的结果为空,到底是没有张三这个人呢,还是张三没有邮箱

解决方案 »

  1.   

    SELECT count(邮箱) FROM 会员信息 WHERE 用户名='张三'
    返回1就是有这个人
      

  2.   

    cmd.CommondText="SELECT 邮箱 FROM 会员信息 WHERE 用户名='张三'";
    object res=cmd.ExecuteScalar();
    if(res==null || res==System.DBNull.Value)
       MessageBox("张三的邮箱为空!");
    else
       MessageBox("张三的邮箱是:" + res.ToString());
      

  3.   

    如果查不到,好像是返回null,也有可能是返回DBNull,你两个都判断就行了,改一下楼上的代码:object res=cmd.ExecuteScalar();
     if(res==null || res is DBNull)
    {
    }
    else{
    }
      

  4.   

    没有记录是null, 有记录字段是null值返回DBNull.Value