asp.net IDataReader считает ситуацию
Я знаю, IDataReader не имеет опцию подсчета. И вы не можете сосчитать строки в datareader и вернуться, чтобы прочитать его снова, потому что он идет только вперед, что означает, что вы не можете перемотать его. Лучшее решение, которое мне приходит в голову, это сделать оператор select, посчитать строки в datareader, затем сделать другой оператор select и делать все, что вы хотите с данными.
Этот вопрос мог быть опубликован здесь много раз, но никто не дал реального решения этого вопроса. Каково лучшее решение без второго оператора select? (Выберите дорого)
Спасибо
1 ответ
Ну, это только проблема, если вам нужно считать количество строк перед чтением, в противном случае простое суммирование результатов и подсчет даст вам то, что вам нужно. Или просто прочитайте что-нибудь в наборе данных и работайте оттуда
Предположим, вам нужно количество строк при чтении первой строки, вы всегда можете сделать что-то вроде этого (не очень хорошая идея)
SELECT [The Real Fields],COUNT(*) as Qty
WHERE [Conditions]
UNION
SELECT [The Real Fields],0 as Qty
WHERE [Conditions]
Таким образом, когда вы прочитаете первую строку, вы узнаете, сколько строк у вас есть.
И да, я знаю, что могут быть лучшие способы сделать SQL, чтобы получить количество строк без объединения и дублирования запросов.