Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Импорт sql-данных в формат .csv



В данной статье я хочу показать как легко и быстро можно сохранять данные, находящиеся в SQL-базе в файл формата .csv, который поддерживает Microsoft Exscel. Это достаточно часто требуется для предоставления отчетности за некоторый период, если мы говорим о финансовых и прочих учреждениях.

Для начала нам потребуется некоторая таблица базы данных SQL-Server. К примеру, имеется таблица кредитов одного из местных отделений некоторого банка. В данной таблице хранится информация по всем выданным данным банком кредитам:

Рис 1. Структура таблицы Credits

Определение таблицы Credits состоит из уникального ключа id, идентификатора дебитора debitor_id, которому выдан данный кредит, размер кредита (тело) amount и текущее значение не погашенной еще части кредита balance. Однако, если вам трудно понять данную структуру колонок, пропустите этот шаг, - на процесс сохранения данных в csv-файл это не повлияет.

Данные кредитов могут выглядеть таким образом:

Рис 2. Данные (записи) таблицы Credits

Ну и, в числе прочего, Национальный Банк запросил отчетность у данного банка за весь период его существования.

Для быстрого формирования отчета код, извлекающий все записи из таблицы Credits и записывающий их в файл .scv может выглядеть следующим образом:

void CopyToCSV
{
    StreamWriter file; 
    file = new StreamWriter("Credits.csv", false);
    using (connection = new SqlConnection(
        ConfigurationManager.ConnectionStrings
            ["MyConnection"].ConnectionString))
    {
        try
        {
            query = "SELECT * FROM Credits";
            SqlCommand command = 
                 new SqlCommand(query, connection);
            connection.Open();
            SqlDataReader SQLreader = 
                 command.ExecuteReader();

            file.WriteLine(
            @"""id"";""debitor_id"";""amount"";""balance""");
            if (SQLreader.HasRows)
            {
                while (SQLreader.Read())
                {
                    file.WriteLine(@"""" +
                         SQLreader.GetValue(0).ToString() + 
                         @""";""" + 
                         SQLreader.GetValue(1).ToString() + 
                         @""";""" + 
                         SQLreader.GetValue(2).ToString() + 
                         @""";""" + 
                         SQLreader.GetValue(3).ToString() + 
                         @"""");
                }
            }
            else
                file.WriteLine(
                     "No one row is in \"Credits\" table");
            file.WriteLine("End of file");
            file.Close();
            SQLreader.Close();
            connection.Dispose();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            if (connection.State == ConnectionState.Open)
                connection.Close();
            connection.Dispose();
        }
}

По поводу блока finally, то закрытие соединения и удаление объекта из памяти не есть обязательным поскольку мы объект-соединение поместили в блок using, что само уже подразумевает автоматический вызов метода Dispose(). Также обращаю ваше внимание на точное соблюдение множества кавычек и точек с запятой. Данный формат символов позволяет выполнять поячеечную и построчную разметку данных в конечном csv-файле. Конечно, вместо простой конкатенации строковых литералов лучше использовать класс StringBuilder, однако в данном примере я намеренно не усложнял визуальное восприятие кода.

В итоге, мы получили файл Credits.csv. Открыв его программой Excel, мы увидим ожидаемые данные:

Рис 3. Данные (записи) таблицы Credits.csv

Конечно, вместо SQLreader.GetValue(i) мы можем использовать индексатор SQLreader[i], или еще лучше точно задавать имя столбца ячейки SQLreader["debitor_id"].

В следующей статье я покажу обратный процесс экспорта данных из csv-файла в контрол DataSet, из которого уже не составляет труда переместить данные в любую другую БД.

Импорт csv-данных в DataSet



Больше информации читайте по теме:

Использование представлений (View) в ADO.NET - C#
Пишем код не думая о поставщике данных - ADO.NET
Изменение цвета текста ячейки DataGridView на c#
Программное добавление ячеек и строк в DataGridView на c# (cell, column, row)
c# - DateTime в RowFilter для DataTable и DataView
Служебные (специальные) символы в запросе фильтрации для DataTable, DataView на c#
Select метод для поиска строк (записей) по связанным таблицам. Или применение функций Parent, Child, GetParentRow, GetParentRows, GetChildeRow, GetChildeRows и внешних связей между таблицами
DataView - фильтр по DataTable на с#
Закрашивание ячейки строки в DataGridView на c#
c# - Поиск ячеек/строк по DataGridView
Вывод в названия колонок DataGridView сторонние значения (не из свойства ColumnName) с помощью c#
Объект CurrencyManager – получение текущей (активной) строки в DataGridView на C#
Автоматическое слежение активной ячейки в DataGridView за перемещением курсора мыши на c#
Получение текущей ячейки в DataGridView при вызове контекстного меню на c#
Значения по умолчанию новой строки DataGridView
Привязка (заполнение) элементов ListBox объектом SqlDataReader
Чтение (выборка) из БД Sql-Server двоичных данных (графического изображения)
Запись (занесение) изображения в БД SQL Server
Добавление и редактирование данных в типизированные DataTable
Импорт csv-данных в DataSet



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Василий    22.02.2011 15:40:25
        

Русский текст не распознает. Может поможете?

178.206.51.204




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок