今天一个查询需要通过 ExcuteReader 返回结果集,同时又想输出参数,刚开始的时候一直得不到输出参数的值,以为存储过程出错,但是在查询分析器里面测试是正确的,而且输出参数确实已经赋值。
更加让人百思不得其解的是,对出输出强制类型转换丢出异常之后,确又可以得到了,难道是ado.net 的bug,想象页不可能啊,这么常用的API,不可能出这种错吧,我的代码类似一下场景:
try {
using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) {
int val = (int)cmd.Parameters[1].Value; // 现在还是空值
// more
}
}
catch(Exception exp) {
throw new ApplicationException("输出参数值:" + cmd.Para...[ 查看全文 ]