【问题标题】:"operation is not valid due to the current state of the object" on Oracle readerOracle 阅读器上的“由于对象的当前状态,操作无效”
【发布时间】:2013-08-04 15:17:10
【问题描述】:

这是问题的关键:

我有这个脚本,在我通过性能测试运行它之前,它绝对没有给我带来任何问题,现在它在调试期间不断向我显示相同的错误,每当我尝试运行它时:

using (OracleConnection con = new OracleConnection())
{
             //Connect to OracleDB and retreive the first valid, unused SRVID//
            con.ConnectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhostip)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyServerNAme)));User Id=MyUSer;Password=MyPAssword";
            OracleCommand command = new OracleCommand("SELECT MASK_GUID(SWAP_GUID(SRVID)) FROM  MYTable WHERE USED=0 AND ROWNUM = 1", con);
            con.Open();
            OracleDataReader reader = command.ExecuteReader();
            reader.Read();
            ServerID = reader.GetString(0);
            reader.Close();
             //update SRVID in DB as used so further users will not select it
            command.CommandText = "UPDATE MyTable SET USED=1 WHERE SRVID = FIX_GUID('"+ ServerID+"')";
            command.Connection = con;
             command.ExecuteNonQuery();
             reader.Close();
             reader.Dispose();
       con.Close();
       con.Dispose();
}

这是代码,这里出了问题:

  1. ServerID= reader.GetString(0) 我收到由于对象的当前状态而导致操作无效错误。在调试中掩盖阅读器时,我发现它没有数据行,这可能解释了错误(但这会导致...)

  2. 查询没问题。我在数据库本地运行它并返回一个有效值(我复制粘贴它以确保),所以这不是阅读器没有数据的原因。

  3. 这个问题是在性能测试期间开始的.

调试器没有显示关于这个案例的其他错误......或者根本没有。

想法?

【问题讨论】:

    标签: c# oracle11g performance-testing datareader


    【解决方案1】:

    您需要将 MaxHttpCollection 属性设置为更高的值。

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多