Может кто-нибудь подтвердить или оспаривать проблему? Я имею доступ к базе данных ACCDB с помощью DataReader
. Я настраиваю DataReader
и запрашиваю базу данных. Когда я проверяю DataReader.HasRows
, я прав, независимо от того, присутствуют ли записи или нет.Datareader.HasRow неверен
Я дважды проверял, что таблица данных пуста, никаких записей вообще, но DataReader.HasRows
все еще говорит, что у нее есть записи.
Если я продолжу и попробую DataReader.Read
, когда я знаю, что нет возвращенных записей, я получаю сообщение об ошибке «Нет данных для строки/столбца». что можно было бы ожидать.
Кто-нибудь видел это раньше? Или вы можете сказать, что этого не происходит?
Благодаря
sql = @"SELECT a.License, a.ClassID, a.CurrentlyIn, a.TotalScans " +
@"FROM Attendance a " +
@"WHERE a.License = " + myScan.LicenseInt +
@" AND a.ClassID = " + myScan.ClassID + ";";
_parent.StatusOutput(sql);
cmdDB = new OleDbCommand(sql, cnDB);
try
{
//cnDB.Open();
drDB = cmdDB.ExecuteReader();
if (drDB.HasRows)
{
_parent.StatusOutput("Data reader has no rows");
}
else
{
_parent.StatusOutput("Data reader has rows.");
drDB.Read();
_parent.StatusOutput(drDB["License"].ToString() + ", " + drDB["ClassID"].ToString());
}
Там мы идем. Извините за мое замешательство в том, как опубликовать это.
Можете ли вы включить фрагмент кода, демонстрирующий это поведение? – EkoostikMartin
Также укажите .Net версию и профиль. – Amy
У вас не может быть строк и по-прежнему выдавать запрос, для которого значение HasRows равно true. Это будет зависеть от запроса. Это может быть что-то еще в вашем коде. Как сказал @EkoostikMartin, напишите фрагмент кода, который производит это. – Pete