asp.net获取存储过程返回的数据,同时获取rowcount 
存储过程:  (得到researchRoom这张表所有信息, 同时return行数)
 CREATE Procedure p_getResearchRoom
 AS
 SELECT researchRoomId,[name],leader,intro 
 FROM researchRoom
RETURN @@ROWCOUNT代码: (下面代码运行成功,得到的是rowcount,   我是想把,行数赋值给k,数据存到SqlDataReader里面,不知道如何实现)
        int k = 0;
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnectionString"].ToString());
        conn.Open();
        SqlCommand MyCommand = new SqlCommand("p_getResearchRoom", conn);
        MyCommand.CommandType = CommandType.StoredProcedure;
        MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
        MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
        MyCommand.ExecuteNonQuery(); //ExecuteReader();不可以吧?
        k =int.Parse(MyCommand.Parameters["@return"].Value.ToString()); 

解决方案 »

  1.   

     SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
            while (reader.Read())
            {
                //...
            }
      

  2.   

    declare @str varchar(50)
    set @str=@@rowcount;
      

  3.   


    MyCommand.ExecuteNonQuery(); 
    替换成
    SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
            while (reader.Read())
            {
                //...
            }出错
    未将对象引用设置到对象的实例。
      

  4.   

    下面是大致思路,代码细节可能不完全正确,你调试一下就成了.SqlDataReader dr=new SqlDataReader();
    dr=MyCommand.ExecuteReader();
    while (dr.Read())
    {.....}
    dr.Close();
    k =int.Parse(MyCommand.Parameters["@return"].Value.ToString()); 
      

  5.   

    楼上正解!
    之前就一直迷糊.  原来用了没有关闭 后来再用就出错
    dr.Close();