A operação não é válida devido ao estado atual do objeto.
Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.
Detalhes da Exceção: System.InvalidOperationException: A operação não é válida devido ao estado atual do objeto.
[InvalidOperationException: A operação não é válida devido ao estado atual do objeto.]
Oracle.DataAccess.Client.OracleDataReader.IsDBNull(Int32 i) +531
Oracle.DataAccess.Client.OracleDataReader.GetValue(Int32 i) +113
Oracle.DataAccess.Client.OracleDataReader.get_Item(Int32 i) +10
_Default.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\WebSite1\Default.aspx.cs:25
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
Exemplo de código que acontece esse erro:
OracleConnection con = new OracleConnection(strcon);
con.Open();
OracleCommand cmd = new OracleCommand("select * from images where rownum < 10 ", con);
cmd.CommandType = CommandType.Text;
OracleDataReader reader = cmd.ExecuteReader();
Response.Write(reader[0].ToString() + "
");
reader.Close();
reader = null;
con.Clone();
con = null;
O problema é simples de resolver... basta incluir a linha:
reader.Read();
pois para usar o datareader é necessário fazer a leitura antes.
0 comentários:
Postar um comentário