日期:2014-05-18  浏览次数:20880 次

关于cmd.Parameters.Clear() 和存储过程返回参数问题
我使用了SqlHelper类 调用带返回参数的存储过程。
但是 但是返回值一直未null,sqlserver测试存储过程正确,
后来发现 cmd.Parameters.Clear() 引起的 注释掉就能得到返回值了
请问大家是怎么处理 存储过程返回值的?

------解决方案--------------------
你的原因是你用到了SqlDataReader,你用DataTable缓存结果集就没问题了,因为当你的SqlDataReader没有关闭之前,那个返回型参数将得不到值,但是你在遍历那个SqlDataReader 之前就清空了Parameters,因此返回值无法回写。看看你的Helper中,有没有执行后得到DataTable或者DataSet的方法,有的话直接用那个就绝对不会有问题的。