可以';无法再检索InputOutput SqlParameter
本文关键字:检索 InputOutput SqlParameter 可以 | 更新日期: 2023-09-27 18:27:59
我在本周开始的一个web应用程序中有一个奇怪的行为。即使它以前工作过,我也无法再从SqlServer检索InputOutput参数。语法在几乎所有的过程中都是一样的,我需要从表中检索Identity值来继续这个过程。
SqlParameter paramId = new SqlParameter("@Id", objMyValueId);
paramId.Direction = ParameterDirection.InputOutput;
在使用ExecuteNonQuery执行SP之后,我总是得到null值(或InputOutput参数中设置的任何值)。
paramId.Value --> (Always null)
这就像收藏品仍然静止不动,无法修改。Sql Server中是否有任何设置或连接字符串中的配置参数会影响此行为?它发生在我执行的每个存储过程中,以前也起过作用。
好吧,我得出的结论(最终)是我们的错,错误很明显。在SVN中跟踪提交之后,我发现团队中的某个人在数据库交互组件的核心中包含了一个新特性。为了避免在数据层中重复某些代码,大多数参数都是从.net类型推断出来的。它使它保持简单,并分离引擎的层(Sql Server、Oracle、mySql等)在其中一个提交中,对参数insert函数进行了重写,这会导致由于不正确的克隆而丢失"Direction"值。所以这就是问题所在,我发现它包含了数据库层的源代码和调试,将参数精确地注入到命令中,在那里我可以看到Direction值丢失了。感谢大家的帮助,我一直很感激这个社区对我的帮助。