В моем текущем приложении мне нужно выполнить SQL-запрос и получить количество возвращаемых результатов, прежде чем продолжить.Это мой код ниже:
if (GetCount(reader) == 1)
{
reader.Read();
Console.WriteLine(reader["field1"]);
Console.WriteLine(reader["field2"]);
}
И это метод GetCount()
public static int GetCount(OracleDataReader reader)
{
int count = 0;
while (reader.Read())
{
count++;
}
return count;
}
После получения подсчета результатов, когда он входит в блок кода if, исключениевыдается, заявляя:
[System.InvalidOperationException] = {"Operation is not valid due to the current state of the object."}
Однако, если я не получаю счет, он работает нормально.
Я думаю, что поскольку в моей функции GetCount есть reader.Read (), мне нужно как-то сбросить считыватель перед чтением значений?Честно говоря, я в тупике.Есть предложения?
Редактировать;В первом блоке кода я получаю то же исключение, даже если закомментирую reader.Read();