我正在使用 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 列。
任何解决此问题的建议将不胜感激。