这是它的症结所在:
我有这个脚本,在我通过性能测试运行它之前,它绝对没有给我带来任何问题,现在每当我尝试运行它时,它在调试期间不断向我显示相同的错误:
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();
}
这就是代码,这里出了什么问题:
由于对象的当前状态错误,
ServerID= reader.GetString(0)
我收到操作无效。在调试中掩盖阅读器时,我看到它没有数据行,这可能解释了错误(但这会导致......)查询没问题。我在数据库本地运行它并返回一个有效值(我复制粘贴它以确保),所以这不是阅读器没有数据的原因。
这个问题是在性能测试期间开始的,该脚本运行了大约 800 次,然后这个错误开始不断出现......我测试的系统仍然运行良好,即使在执行需要访问同一数据库的操作时也是如此。
调试器没有显示关于这种情况的其他错误......或者,就此而言。
想法?