ExecuteScalar没查到时,返回null,(int)null肯定要出错

解决方案 »

  1.   

    Sqlhelper是否是静态类,如果不是静态类需要实例化这个类
      

  2.   

    public static object ExecuteScalar(string sql, params SqlParameter[] pms)
            {
                using(SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        if (pms != null)
                        {
                            cmd.Parameters.AddRange(pms);
                        }
                        con.Open();
                        return cmd.ExecuteScalar();
                    }
                }
            }
    我需要改什么吗
      

  3.   

    public static object ExecuteScalar(string sql, params SqlParameter[] pms)
            {
                using(SqlConnection con = new SqlConnection(constr))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, con))
                    {
                        if (pms != null)
                        {
                            cmd.Parameters.AddRange(pms);
                        }
                        con.Open();
                        return cmd.ExecuteScalar();
                    }
                }
            }这是代码
      

  4.   

    这里 using(SqlConnection con = new SqlConnection(constr))打个断点F11一步步调试
      

  5.   


    if(sqlhelper.ExecuteScalar(sql,ps)!=null)
    {
        return true;
    }
    else
    {
        return false;
    }
    这样就可以了吧
    不用result了,ExecuteScalar查到时,返回第一行第一列的数据,而不是行数
      

  6.   

    问题就出在你的int强制转换上