ExecuteReader调用存储过程无法获取RETURN_VALUE
2012-04-15 20:06
435 查看
public int Exists(Model.User user) { SqlParameter[] para = new SqlParameter[] { new SqlParameter("@userName",SqlDbType.NChar), new SqlParameter("@pwd",SqlDbType.Char), new SqlParameter("@RETURN_VALUE", SqlDbType.Int), }; para[0].Value = user.ID; para[1].Value = Encrypt(user.Pwd); para[2].Direction = ParameterDirection.ReturnValue; SqlDataReader reader = SQLHelper.ExecuteReader("SelectUser", CommandType.StoredProcedure, para); if (reader.Read()) { // 保存用户信息 } reader.Close(); reader.Dispose(); return (int)para[2].Value;
}
由于ExecuteReader会操持数据库的连接状态,因此存储过程的返回值无法返回。需要关闭连接后才能获取返回值,关键以下两句:
reader.Close();reader.Dispose();
SQLHelper.ExecuteReader("SelectUser", CommandType.StoredProcedure, para);方法中不能将传入参数Clear掉,否则也无法获取返回值。
相关文章推荐
- c#中获取存储过程的返回值(return Value)
- php pdo调用SQLServer存储过程无法获取返回结果
- SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
- SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
- c#中获取存储过程的返回值(return Value)
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- C#获取存储过程的Return返回值和Output输出参数值
- 存储过程有输出参数,在c#中用nhibernate调用存储过程时,如何才能获取到一个结果集和这个输出参数呢?
- 定义公共的类调用存储过程获取数据
- sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbname"。
- java调用存储过程无法取得返回参数
- java调用存储过程同时获取[返回参数]和[结果集]
- java调用存储过程(output和return)
- delphi调用sql存储过程,并获取结果
- sqlserver,获取调用存储过程返回数据的方法。
- asp程序调用SQL Server的存储过程,获取不到输出参数的值
- (摘)C#获取存储过程的Return返回值和Output输出参数值
- 获取存储过程的ReturnValue值
- C#获取存储过程的 Return返回值和Output输出参数值
- C#获取存储过程的Return返回值和Output输出参数值