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());
存储过程: (得到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());
while (reader.Read())
{
//...
}
set @str=@@rowcount;
MyCommand.ExecuteNonQuery();
替换成
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
//...
}出错
未将对象引用设置到对象的实例。
dr=MyCommand.ExecuteReader();
while (dr.Read())
{.....}
dr.Close();
k =int.Parse(MyCommand.Parameters["@return"].Value.ToString());
之前就一直迷糊. 原来用了没有关闭 后来再用就出错
dr.Close();