public bool ExecSqlToReturn(string Sql)
    {
        command = new SqlCommand(Sql, sc);
        int i = (int)command.ExecuteScalar();
        return i > 0;
    }
sql的内容为:select * from users where uname='aa' and password='bbb'

解决方案 »

  1.   

    SqlCommand command = new SqlCommand(Sql, sc);这样试一下,错误在哪行?是不是sc的值引用错误 ?
      

  2.   

    错误在(int)command.ExecuteScalar();这一句.真是搞不清楚了.
      

  3.   

    试一下Convert.ToInt32(command.ExecuteScalar());这种方法
      

  4.   

    command.ExecuteScalar() 返回的是个object类型,对于一些复杂的类型,只能使用Convert类进行转换
      

  5.   

    在这个情形下,主要是因为在数据库中取出的是空值,用Convert.ToInt32可以将空值转换为0,而用(int)这种方式会报错。这是在object向int转换时两个方法的主要的区别。