Как я могу экспортировать записи из более чем 1 000 000 из базы данных сервера SQL в форматы CSV в LINQ? - PullRequest
0 голосов
/ 03 июня 2010
  • Моя команда работает над проектом asp.net File Management
  • В нашем проекте нам нужно экспортировать содержимое базы данных в форматы csv
  • Таблица базы данных содержит 6 полей
  • Мы используем LINQ.

1 Ответ

2 голосов
/ 03 июня 2010

Я бы не советовал загружать все 1 000 000 записей в память и позволять загружать все сразу как csv. Преобразование записей базы данных в формат CSV не должно быть проблемой, поскольку это просто вопрос манипуляции со строками. В вашем приложении asp.net вы можете поместить кнопку «Скачать как CSV», нажав на которую, вы начнете считывать данные, скажем, 1000 записей, конвертировать пакет в csv и помещать его в буфер ответов и очищать поток ответов, пока вы прочитайте следующую партию из 1000 записей. Вам нужно будет запросить диалог загрузки на клиенте, для которого вы можете добавить нижеупомянутый заголовок ответа, прежде чем первый пакет записей будет сброшен на клиент.

/// <summary>
/// Displays download file dialog.
/// </summary>
protected void DownloadAsCsv()
{
    Response.Clear();
    Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "your-filename.csv"));
    Response.ContentType = "application/octet-stream";

    //start flushing records to CSV in batch here..
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...