我在本周开始发生的Web应用程序中有一种奇怪的行为。即使它工作之前我不能再从Sql Server检索InputOutput参数。 几乎所有过程中的语法都是一样的,我需要从表中检索标识值以继续该过程。
SqlParameter paramId = new SqlParameter("@Id", objMyValueId);
paramId.Direction = ParameterDirection.InputOutput;
使用ExecuteNonQuery执行SP后,我总是得到空值(或在InputOutput参数中设置的任何值)。
paramId.Value --> (Always null)
这就像收藏仍然是静止的,无法修改。 Sql Server或配置参数中是否存在可能影响此行为的连接字符串中的任何设置?它发生在我执行的每个存储过程中,并且之前有效。
答案 0 :(得分:0)
好吧,我得出结论(最后)这是我们的错,错误很明显。 跟踪SVN中的提交后,我发现团队中的某个人在数据库交互组件的核心中包含了一个新功能。为避免在数据层中重复某些代码,大多数参数都是从.net类型推断出来的。它保持简单并分离引擎层(Sql Server,Oracle,mySql等) 在其中一个提交中,对参数插入函数进行了覆盖,它导致我们由于克隆错误而丢失“方向”值。 所以这就是问题,我发现它包括数据库层的源代码和调试到命令的精确注入参数,在那里我可以看到Direction值丢失了。 感谢大家的帮助,我总是很感激这个社区给了我多少帮助。