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, чтобы получить количество строк без объединения и дублирования запросов.

Другие вопросы по тегам