1
使用Simple.Data時,我想從存儲過程的輸出參數中獲取結果。比方說,我有以下的SP(無視它的無用):在使用Simple.Data時使用輸出參數調用sql server存儲過程
CREATE PROCEDURE [dbo].[TestProc]
@InParam int,
@OutParam int OUTPUT
AS
BEGIN
SELECT @OutParam = @InParam * 10
END
當我與Simple.Data調用它,我用下面的代碼。
var db = Database.Open();
int outParam;
var result = db.TestProc(42, out outParam);
Console.WriteLine(outParam); // <-- == 0
Console.WriteLine(result.OutputValues["OutParam"]); // <-- == 420
感覺就像outParam應該包含值,而不是OutputValues字典。所以我的問題是:在這種特殊情況下是否有更好的方法從OutParam中獲得結果?
如果你可以調用它,而不需要發送出參數作爲參數,它會看起來不錯。只是db.TestProc(42); (我不知道是否有可能...) –
如果更改存儲過程併爲輸出參數提供默認值,則不需要傳遞它。 'CREATE PROCEDURE TestProc(@Answer INT,@Question INT = NULL OUTPUT)' 然後 'db.TestProc(42);' 將正常工作。 –