我們正在將舊的C#應用程序遷移到最新版本的C#(和.NET框架),並在測試過程中遇到問題。沒有什麼earthshattering - 只是基本的數據訪問代碼。C#SqlParameter of 0 changed'default'
具體來說,我們正在創建一個名爲'@BalanceForward'的SqlParameter。在這個特殊情況下,我們將這個值設置爲零 - 儘管它顯然可以是其他值。當執行存儲過程時,我們得到一個錯誤,該過程期望一個名爲'@BalanceForward'的參數,但它沒有被指定。奇。
我們跑了SQL跟蹤,看到下面的...
EXEC usp_Transaction_Create @編號=「虛值」,@ BalanceForward =默認
正如你所看到的,零金額被更改幕後「默認」。它必須是一個.NET框架行爲改變 - 從仍在生產的版本看SQL跟蹤,零美元數量傳遞爲0.00。
有沒有辦法來禁用這個,只是讓它通過實際值而不是'默認'?我們並不想通過數百個存儲過程來解釋這可能發生的可能性。
沒有觸發這個錯誤的代碼很難說什麼。很確定這個基本功能沒有改變,否則...... – Steve
你如何設置參數的值?請參閱http://stackoverflow.com/questions/5356862/sqlparameter-with-default-value-set-to-0-doesnt-work-as-expected – Nikki9696