当我运行cmd.ExecuteScalar()或cmd.ExecuteNonQuery()时,命令对象上的Output和InputOutput参数将从存储过程中的更改中更新。但是,对于cmd.ExecuteReader()不会发生同样的情况。这发生在Sql Server和MySql连接上。这是行为设计吗?ExecuteReader()后未更新输出参数
3
A
回答
8
嘿,这可能会帮助你。 clicky...
看来在某些情况下这可能是一个问题。
+1
答案就在那里。读者必须阅读到最后或关闭参数才能更新。我将我对参数的评估提交给读者完成后,现在它工作。谢谢。 – 2009-10-16 10:33:47
0
您应该能够通过输出参数检索值。看看这个MS支持文章,看看你的问题是否是提到的那些:link text
此外,你想要返回什么?如果它只是一个单值,那么使用ExecuteScalar()而不是ExecuteReader()是值得的。
1
输出参数仅在您读取到记录集的末尾后才可用。
例如,在此过程中:
alter procedure db.TestProc(@p int output)
as
select 1
select 1
set @par = 1
该数据库将只设置@par你读过这两个记录集后。在读完第一个之前,数据库甚至不会执行第二个SELECT。它是在您请求它们时流式传输的结果。
相关问题
- 1. 未返回输出参数
- 2. 更改过程输入输出参数
- 3. 数据库更改后ListView未更新
- 4. SqlClient Xml输出参数“未提供”
- 5. 更新后的输出与旧输出连接
- 6. 输出参数
- 7. 输出参数
- 8. JavaScript中未更新的URL参数
- 9. app_dev未使用更新的参数.yml
- 10. angular.js隐藏输入数据未更新
- 11. Splunk模块化输入更新参数
- 12. 查询后数据库未更新
- 13. 发布后数据库未更新
- 14. 第一个参数输入后,相关参数不会刷新
- 15. DatabaseFactory输出参数
- 16. 输出PSBound参数
- 17. simplejdbccall输出参数
- 18. C#输出参数
- 19. Linq输出参数
- 20. SQL输出参数
- 21. 与输出参数
- 22. 输出参数odp.net
- 23. MSSQL更新:更新前的输出值
- 24. 散列表未被新输入更新
- 25. LaTeX输出不更新
- 26. 更新与参数
- 27. 更新URL参数
- 28. TextBox中的TextProperty在输入文本后未被更新;
- 29. 更新后出错OmniFaces 2.6
- 30. C#ExecuteReader()错误。需要输出中的SQL查询文本框
你能提供一个示例代码吗? – Restuta 2009-10-16 10:24:03