请问SELECT TaskNo FROM KB_SoftTaskInfo WHERE AssetGroup=?我用ExecuteScalar()调用 当的数据库里有相应的纪录时 就不会出错但是没时为什么就会直接跳到finally()去了关闭数据库?

解决方案 »

  1.   

    ExecuteScalar是取出操作数据库结果的第0行第0列的值,如果没有值的话则返回null,如果你对该返回值进行操作的话就会抛出异常  比如类型转换错误具体还要看你的代码才知道
      

  2.   

    如果为空,是会有异常的,建议先判断一下是否为null..if(cmd.ExcuteScalar()==null)
    {
        //处理..
    }
      

  3.   


    object obj1=com1.ExecuteScalar();
    if(obj1==null||Convert.IsDBNULL(obj1))
    {
       //处理……;
    }Convert.IsDBNULL(obj1)指查询的结果是数据库中的空(NULL)类型