【发布时间】:2016-06-21 21:00:11
【问题描述】:
我们正在将较旧的 C# 应用程序迁移到最新版本的 C#(和 .NET 框架),并且在测试期间遇到了问题。没有什么惊天动地的 - 只是基本的数据访问代码。
具体来说,我们正在创建一个名为“@BalanceForward”的 SqlParameter。在这种特殊情况下,我们将值设置为零 - 尽管它显然可以是其他值。执行存储过程时,我们收到一个错误,该过程需要一个名为“@BalanceForward”的参数,但未指定。奇怪。
我们运行 SQL 跟踪并看到以下内容...
执行 usp_Transaction_Create @Id='dummy value',@BalanceForward=default
如您所见,零美元金额正在幕后更改为“默认”。这一定是 .NET 框架的行为改变 - 从仍在生产的版本中查看 SQL 跟踪,零美元金额作为 0.00 传递。
有没有办法禁用它并让它传递实际值而不是“默认”?我们真的不想通过数百个存储过程来说明可能发生这种情况的可能性。
【问题讨论】:
-
没有触发这个错误的代码很难说什么。很确定这个基本功能没有改变,否则......
-
你是如何设置参数的值的?见stackoverflow.com/questions/5356862/…
标签: c# sql-server stored-procedures