如何从c#中的oracle存储过程中获取数据集值

时间:2014-09-08 06:15:17

标签: c# oracle ado.net

我的sp在光标中返回表,但是在使用数据集

进行映射时遇到错误
DataSet ds = new DataSet();

command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("Size", OracleDbType.Int16).Value = size
command.Parameters.Add("Index", OracleDbType.Int16).Value = Index;
command.Parameters.Add("Data", OracleDbType.RefCursor).Direction = ParameterDirection.Output;

OracleDataAdapter da = new OracleDataAdapter(command);
da.Fill(ds);
return ds;

但是我得到了以下错误:
如何映射

  

[InvalidOperationException:由于对象的当前状态,操作无效。] System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e)+130 System.Web.UI.Page.RaiseChangedEvents()+105 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+3572

1 个答案:

答案 0 :(得分:0)

[InvalidOperationException:由于对象的当前状态,操作无效。]

此例外有多种可能性。

1)command.CommandText = *Your Sp's name will go here*; 看起来像你的代码中缺少。如果缺少,请提供CommandText。

2)可能是因为web.config中的MaxHttpCollection设置。默认情况下,它可以容纳1000.在web.config中添加以下设置。

<appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="2001" />
</appSettings> 

希望这能解决您的问题。