2

EnterpriseLibrary5.0を使用したMicrosoftSequelServer2008の出力パラメーターに問題があります

コード(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には1つのオブジェクトが含まれます。私が得るエラーは

[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

データベース内から1つのパラメーターのみを使用してストアドプロシージャを呼び出すと、正常に機能しますが、追加のオプションの出力パラメーターを追加した後、コードでエラーが発生するため、

最初のストアドプロシージャを作成して最初のプロシージャを呼び出すこともできますが、それはハッキーな解決策のようで、ここで微妙な何かが欠けているのではないかと思います...

4

1 に答える 1

0

呼び出しを実行するb/fでparameterValuesオブジェクトを見ましたか?必要なキーと値のペアのみを使用してオプションのパラメーターを実行しました。

cmd.Parameters.Add(new SqlParameter( "@ BusStopID"、myBusStopID));

于 2012-03-13T17:01:13.243 に答える