1

我在本周开始发生的 Web 应用程序中有一个奇怪的行为。即使它在我无法从 Sql Server 检索 InputOutput 参数之前工作。几乎所有过程中的语法都是相同的,我需要从表中检索标识值以继续该过程。

SqlParameter paramId = new SqlParameter("@Id", objMyValueId);
paramId.Direction = ParameterDirection.InputOutput;

使用 ExecuteNonQuery 执行 SP 后,我总是得到空值(或 InputOutput 参数中设置的任何值)。

paramId.Value --> (Always null)

就像收藏仍然静止,无法修改。Sql Server 中是否有任何设置或连接字符串中的配置参数可能会影响此行为?它发生在我执行的每个存储过程中,并且以前有效。

4

1 回答 1

0

好吧,我得出结论(最终)这是我们的错,错误很明显。在 SVN 中追溯提交后,我发现团队中的某个人在数据库交互程序集的核心中包含了一个新功能。为了避免在数据层中重复某些代码,大多数参数都是从 .net 类型推断出来的。它保持简单并分离引擎层(Sql Server、Oracle、mySql 等) 在其中一个提交中,对参数插入函数进行了覆盖,这导致我们由于不正确的克隆而丢失了“Direction”值。所以这就是问题所在,我发现它包括数据库层的源代码并调试到将参数精确注入命令中,在那里我可以看到方向值丢失了。感谢大家的帮助,我一直很感激这个社区对我的帮助。

于 2013-08-15T19:11:07.717 回答