如何取得输出参数值,可以通过执行ExecuteNonQuery或ExecuteReader后取得
下面第一段代码是OK的
-------------------------第一段------------------------
Database DB = DatabaseFactory.CreateDatabase() as SqlDatabase;
DbCommand dbCmd = DB.GetStoredProcCommand("up_存储过程");
DB.AddInParameter(dbCmd, "Input", DbType.Int16, 10);
DB.AddOutParameter(dbCmd, "OutputValue", DbType.Int32, 10);
using (SqlDataReader dr = (SqlDataReader)DB.ExecuteReader(dbCmd))
{
}
int val= (int)DB.GetParameterValue(dbCmd, "OutputValue");//这是输出参数值
注意:GetParameterValue必须是在dr关闭后才有效,
或者
Database DB = DatabaseFactory.CreateDatabase() as SqlDatabase;
DbCommand dbCmd = DB.GetStoredProcCommand("up_存储过程");
DB.AddInParameter(dbCmd, "Input", DbType.Int16, 10);
DB.AddOutParameter(dbCmd, "OutputValue", DbType.Int32, 10);
DB.ExecuteNonQuery(dbCmd);
int val= (int)DB.GetParameterValue(dbCmd, "OutputValue");//这是输出参数值
-------------------------第一段结束------------------------
问题是我想能过ExecuteReader获得SqlDataReader 并获得输出参数值
我把写成类的一个方法啦,而在页面上调用它
public class Test{
public SqlDataReader GetValue(int ref val)
{
Database DB = DatabaseFactory.CreateDatabase() as SqlDatabase;
DbCommand dbCmd = DB.GetStoredProcCommand("up_存储过程");
DB.AddInParameter(dbCmd, "Input", DbType.Int16, 10);
DB.AddOutParameter(dbCmd, "OutputValue", DbType.Int32, 10);
SqlDataReader dr = (SqlDataReader)DB.ExecuteReader(dbCmd);
val= (int)DB.GetParameterValue(dbCmd, "OutputValue");
retrurn dr;
}
}
int val;
SqlDataReader dr = Test.GetValue(ref val);
这是就会出现问题,以下这一段
SqlDataReader dr = (SqlDataReader)DB.ExecuteReader(dbCmd);
val= (int)DB.GetParameterValue(dbCmd, "OutputValue");
retrurn dr;
会提示错误,由于dr还没有关闭,无法取得输出值
请大家帮忙一下
浙公网安备 33010602011771号