Member 12417764 Ответов: 1

Как найти количество строк, затронутых запросом


В следующем коде я хочу найти сколько строк зависит от запроса и что динамически назначенный размер массива rawData

Что я уже пробовал:

OleDbConnection con = (new DABasis()).getConnect();
         OleDbCommand cmd = con.CreateCommand();
         con.Open();
         cmd.CommandText = ("select * from KnowledgeTB");
         OleDbDataReader Reader = cmd.ExecuteReader();
         //if (Reader.HasRows)
         //    Reader.Read();
         int count= 0;
         count = Reader;
    //  int cnt = int.Parse(count);

         int[][] rawData = new int[count][];
         while (Reader.Read())
         {

             int db_data = Reader.GetInt32(3);
         //    rawData[i] = new int[] { i, db_data };
             rawData[i] = new int[] { i, db_data };
             i = i + 1;
         }


         cmd.Dispose();
         con.Close();

0x01AA

Стоит прочитать: нет никакого свойства RecordCount, когда вы используете OleDbDataReader [^]

1 Ответов

Рейтинг:
1

OriginalGriff

Никто. Операции выбора не влияют ни на какие строки - они просто возвращают указанные вами данные.
В этом случае он вернет все строки и все столбцы таблицы KnowledgeTB,так что количество строк в таблице будет Вам известно. Но поскольку вы используете OleDbDataReader, вы не можете сказать, сколько это строк, поскольку операция чтения асинхронна - она извлекает каждую строку одну за другой из источника данных при вызове Read.