我在使用 Enterprise Library 5.0 的 Microsoft Sequel Server 2008 中的输出参数有问题
我正在从我的代码(在 C# 中)调用一个过程,它工作正常,直到我向存储的过程中添加了一个可选的输出参数来跟踪反馈。
从我的代码中调用 proc 的代码:
string insertCommand = insertParams[0]; //the stored proc command
Object[] parameterValues = insertParams.Skip(1).ToArray(); //The parameters
int feedback = 1;
IDataReader reader = localDB.ExecuteReader(insertCommand, parameterValues); //ERROR
if (reader.Eead()){
//stuf
在调试期间 parameterValues 包含一个对象。我得到的错误是
[System.InvalidOperationException] = {“参数数量与存储过程的值数量不匹配。”}
我的存储过程如下所示:
ALTER PROCEDURE [dbo].[BS_GetDetails]
@BusStop_ID INT,
@FEEDBACK_CODE INT=NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @FEEDBACK_CODE = 200
//Do lots of other non-related things, mostly select statements
当我只使用一个参数从数据库内部调用存储过程时,它工作正常,但是在我添加额外的可选输出参数后我的代码中出现错误
我可以创建第二个存储过程来调用第一个,但这似乎是一个 hacky 解决方案,我怀疑我在这里遗漏了一些微妙的东西......