这个错误到底是因为什么呢
是在找不到数据的时候未对flag进行引用吗?
我在另一个登录界面时也用了这样的语句
可是没有任何问题

解决方案 »

  1.   

    int flag = (int)inscom.ExecuteScalar();
    这条语句有问题。
    当查询不到数据的时候,inscom.ExecuteScalar返回NULL的,因此一般在提取数据时先比较一下是否是null,如果是则不读取,如果不是再转换。建议如下:
    object obj=inscom.ExecuteScalar();
    int flag;
    if(obj!=null)
    {
        flag=(int)obj;
    }
    else
    {
    ...
    }
      

  2.   

    inscom.ExecuteScalar(); 是返回首行首列,如果SQL语句的结果为无记录的话就会报错
    也就是说.ExecuteScalar() 方法 ,SQL的查询结果结果至少的有1条记录
      

  3.   

    我想我终于知道了最简单的办法就让它出错后就转到错误页面
    而这也是我本来期望的
    谢谢大家的回答
    至少我更明白ExecuteScalar()方法了