1

我正在使用 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 列。

任何解决此问题的建议将不胜感激。

4

0 回答 0