Ibatis.NET を使用してある種のサーチャーを開発しています。これまでのところ、これはプロシージャの sqlMap です。
<statement id="statementId" parameterClass="parameterObject" resultClass="resultClass">
DECLARE @table1 Table1,
@table2 Table2
INSERT INTO @table1 (Value1, Value2)
VALUES
<iterate property="valueList" open="(" close=")" conjunction="),(">
#valueList[].Item1#,#valueList[].Item2#
</iterate>
INSERT INTO @table2 (Value1, Value2)
VALUES
<iterate property="valueList2" open="(" close=")" conjunction="),(">
#valueList2[].Item1#,#valueList2[].Item2#
</iterate>
EXEC [SP_StoredProcedure]
@tvisible=@tvisible,
@tparametro=@tparametro,
</statement>
StoredProcedure は、パラメーター table1 によって決定される一連の列を返します。問題が発生するのは、4 つの値を返す呼び出しを行ってから、3 つの値を返す別の呼び出しを行うと、範囲外のインデックスが発生するという例外です。sqlDataReader は以前に返された 4 つの列を読み込もうとしていると思いますが、今回は 3 つの列のみで構成されています。
これを解決するための提案をいただければ幸いです。