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);' 将正常工作。 –