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つのパラメーターのみを使用してストアドプロシージャを呼び出すと、正常に機能しますが、追加のオプションの出力パラメーターを追加した後、コードでエラーが発生するため、
最初のストアドプロシージャを作成して最初のプロシージャを呼び出すこともできますが、それはハッキーな解決策のようで、ここで微妙な何かが欠けているのではないかと思います...