string str="";
SqlCommand cmd = new SqlCommand();
 cmd.Connection = DB.Create_Connection();//连接数据库的
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_password";
 SqlParameter para3 = new SqlParameter("@old", SqlDbType.VarChar);
 para3.Value = txt_jiumm.Text.Trim();
 cmd.Parameters.Add(para3);
 SqlParameter para4 = new SqlParameter("@new", SqlDbType.VarChar);
 para4.Value = txt_xinmm.Text.Trim();
 cmd.Parameters.Add(para4);
 SqlParameter para5 = new SqlParameter("@loginame", SqlDbType.VarChar);
  para5.Value = txt_name.Text.Trim();
   cmd.Parameters.Add(para5);
str = cmd.ExecuteScalar().ToString();
帮我看看为什么会报“未将对象引用设置为对象的实例”

解决方案 »

  1.   

    str = cmd.ExecuteScalar().ToString();
    这行出的问题
      

  2.   

    加监视看看cmd.ExecuteScalar()的值
      

  3.   

    使用Convert.ToString(cmd.ExecuteScalar())
      

  4.   

    cmd.ExecuteScalar() 返回的为null 必须判断下
      

  5.   

    string str="";
    SqlCommand cmd = new SqlCommand();
     cmd.Connection = DB.Create_Connection();//连接数据库的
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "sp_password";
     SqlParameter para3 = new SqlParameter("@old", SqlDbType.VarChar);
     para3.Direction = ParameterDirection.Input;
     para3.Value = txt_jiumm.Text.Trim();
     cmd.Parameters.Add(para3);
     SqlParameter para4 = new SqlParameter("@new", SqlDbType.VarChar);
     para3.Direction = ParameterDirection.Input;
     para4.Value = txt_xinmm.Text.Trim();
     cmd.Parameters.Add(para4);
     SqlParameter para5 = new SqlParameter("@loginame", SqlDbType.VarChar);
     para3.Direction = ParameterDirection.Input;
      para5.Value = txt_name.Text.Trim();
       cmd.Parameters.Add(para5);
    str = cmd.ExecuteScalar().ToString();
      

  6.   

    先把你的SQL复制到查询分析器里看一下,执行是否有结果。
      

  7.   

    para3.Direction = ParameterDirection.Input; 
    para4.Direction = ParameterDirection.Input; 
    para5.Direction = ParameterDirection.Input; 
    加这3句看看
      

  8.   


    cmd.ExecuteScalar() 返回了 null,所以出错了。
      

  9.   

    恩,应该是这个cmd.ExecuteScalar()返回了null,然后你调用ToString()的时候,就会出错了~
      

  10.   

     string str="";
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = DB.Create_Connection();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "sp_password";
    SqlParameter para3 = new SqlParameter("@old", SqlDbType.VarChar);
                        para3.Value = txt_jiumm.Text.Trim();
                        cmd.Parameters.Add(para3);
                        SqlParameter para4 = new SqlParameter("@new", SqlDbType.VarChar);
                        para4.Value = txt_xinmm.Text.Trim();
                        cmd.Parameters.Add(para4);
                        SqlParameter para5 = new SqlParameter("@loginame", SqlDbType.VarChar);
                        para5.Value = txt_name.Text.Trim();
                        cmd.Parameters.Add(para5);
                        SqlParameter para6= new SqlParameter("@Return", SqlDbType.VarChar);
                        para6.Direction = ParameterDirection.ReturnValue;
                        cmd.Parameters.Add(para6);
     cmd.ExecuteScalar();
                            str = cmd.Parameters["@Return"].Value.ToString();
                           // str =cmd.ExecuteScalar() .ToString();这样就可以了