Как ВЫБРАТЬ данные из SQL Server, используя .NET 2.0 - как можно проще - PullRequest
0 голосов
/ 02 октября 2009

Простой вопрос:

У меня есть приложение, которому нужно сделать полдюжины запросов SELECT к SQL Server 2005 и записать результаты в плоский файл. Вот и все.

Если бы я мог использовать .NET 3.5, я бы создал модель LINQ-To-SQL, написал бы выражения LINQ и сделал бы это за час. Каков следующий лучший подход, учитывая, что я не могу использовать .NET 3.0 или 3.5? Являются ли ADO.NET DataReaders / DataSets лучшим вариантом или я забыл что-то еще доступное?

Ответы [ 4 ]

4 голосов
/ 02 октября 2009

Лучше всего использовать классы SqlCommand и SqlDataReader. Если вам нужно записать результаты в плоский файл, вы должны использовать ридер напрямую, а не переходить к DataSet, поскольку последний загрузит результат в память, прежде чем вы сможете записать его в плоский файл.

SqlDataReader позволяет вам считывать данные в потоковом режиме, делая ваше приложение намного более масштабируемым для этой ситуации.

1 голос
/ 02 октября 2009

Поскольку Ник К так услужливо ответил на мой вопрос по SQL Server 2000 о сбое сервера, утилита bcp действительно пригодится для этого.

Вы можете написать пакетный файл или быстрый скрипт, который будет вызывать BCP с вашими запросами и делать это дамп csv, sql прямо в текстовый файл!

0 голосов
/ 02 октября 2009

Кроме того, вы можете избежать написания кода и использовать BCP.exe: http://msdn.microsoft.com/en-us/library/ms162802(SQL.90).aspx

0 голосов
/ 02 октября 2009

Согласитесь с ответом Дэйва Ван ден Эйнда выше, но я бы сказал, что если вы помещаете большой объем данных в эти файлы, и если ваше приложение поддерживает что-то, то стоит взглянуть на пакет SSIS .

Это может быть излишним, но это часто упускается из виду при массовом импорте / экспорте.

...