Мне достаточно легко прочитать маленькую таблицу SQL Server 2005, например:
string cmdText = "select * from myTable";
SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connection);
DataTable table = new DataTable();
adapter.Fill(table);
К сожалению, этот метод загружает всю таблицу в память, которая просто не будет работать с гигантскими таблицами, с которыми я работаю.
Я хотел бы иметь возможность перебирать таблицу по одной строке за раз, так что только одна строка должна находиться в памяти одновременно. Что-то вроде:
foreach (DataRow row in rowIteratorObject)
{
// do something using the row
// current row goes out of scope and is no longer in memory
}
Это похоже на то, как вы можете использовать StreamReader для обработки текстового файла по одной строке за раз, вместо того, чтобы читать все сразу. Кто-нибудь знает способ сделать это со строками таблицы (или, если я лаю не на том дереве, альтернативное решение)?