Школа Информационной Безопасности в Твери от Сodeby

Мы открыли свою оффлайн школу Информационной Безопасности в Твери от Сodeby. Учим без шаблонов и занудства 🙂 Подробнее ...


Работа с базой данных MySQL в C#

Рассмотрим простенькую задачку. У нас есть сайт, управление, которым осуществляется с помощью cms WordPress, а все данные хранятся в базе данных СУБД MySQL. Нужно создать клиентское приложение, которое будет подключаться к базе данных, получать все комментарии за сегодняшний день и выводить их в DataGridView.

Подготовка

Создадим Windows Forms приложение и поместим на форму два элемента управления: кнопку с надписью получить комментарии и datagridview, который будет визуально отображать полученные данные.

окно программы

Для работы с базой данных нам потребуется поставщик данных (data provider), он обеспечивает подключение к БД, позволяет выполнять команды и получать результаты. По сути это обычный файл (.dll), внутри которого содержаться типы, которые настроены на взаимодействие с какой-то одной конкретной СУБД: MySQL, Oracle, Microsoft SQL Server и так далее.

поставщик данных

В Microsoft ADO.NET основное количество поставщиков данных содержится в сборке Sytem.Data.dll, но в этой сборке нет поставщика данных для работы с MySQL. Поэтому его придется скачать и установить самостоятельно. Как это сделать, можно прочитать здесь.

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

И последнее, что нужно узнать, это имя таблицы, в которой хранятся все комментарии. Это можно сделать разными способами, например, зайти на официальный сайт WordPress и найти страницу «Database Description», на которой приведено полное описание архитектуры базы данных.

структура бд WordPress

Либо, к примеру, воспользоваться утилитой phpMyAdmin и вручную осуществить поиск нужной таблицы, остановимся на нём.

phpMyAdmin

И так открываем страницу phpMyAdmin, слева видим список баз данных.

список баз данных

Выбираем в списке базу данных нашего сайта, например mytest и нажимаем на её заголовок. На открывшейся странице мы видим список всех доступных таблиц, среди которых есть таблица wp_comments (wp  это префикс таблиц, у вас он может быть другим), само же имя будет таким же.

список таблиц



Посмотрим, что содержится в данной таблице. Для этого нажимаем на значок с именем Browse.

значок

В открывшемся окне мы видим состав таблицы, а так же какие-то ранее занесенные в неё данные, которые нам как раз и нужно будет получить.

таблица с комментариями

Все поля нас не интересуют, поэтому возьмем только парочку, к примеру, получим значения: автор (comment_author), дата (comment_date) и сам текст комментария (comment_content).

Переходим к написанию кода.

Исходный код

Для начала создадим метод GetComments, который будет возвращать объект DataTable. Так как по умолчанию созданный метод имеет модификатор доступа private, то его можно не указывать явно.

Затем настроим подключение к базе данных

1. Создадим и заполним объект MySqlConnectionStringBuilder, который будет хранить следующие значения: имя сервера, где лежит база данных, имя пользователя и пароль для подключения к БД, а так же имя базы данных.

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

2. Создадим строку запроса, в ней мы выбираем все комментарии за сегодняшний день.

3. Создадим объект DataTable, который будет возвращать наш метод и принимать datagridView.

4. Создадим объект подключения, используя класс MySqlConnection.

4.1 Настроим созданный объект, передав в свойство ConnectionString наш созданный ранее объект типа MySqlConnectionStringBuilder.

5. Открываем соединение с базой данных

6. Создаем объект команду, в конструктор передаем строку запроса и объект подключения

7. Выполним метод ExecuteReader, который позволит получить объект чтения данных MySqlDataReader

Полный листинг

Осталось поместить полученные данные в datagridView.

На этом всё, осталось протестировать наше приложение. Нажимаем на кнопку получить комментарии, и видим результат.

результат

Читайте также:



Похожие темы

Матричный метод решения СЛАУ. Распараллеливание с ... Алгоритм матричного метода решения СЛАУ подробно описан в теме: Матричный метод решения СЛАУ (распараллеливание с openMP). Распараллелим этот а...
C# Как переименовать файл? C# Как переименовать файл? В этой заметке будет показано, как можно получить и изменить имена и расширения всех файлов в выбранной вами папке. Дан...
Создание раздела реестра испльзуя язык c#... Создание раздела реестра на языке c# От теории переходим к практике, для начала научимся открывать и создавать разделы реестра Создание раздела реес...
Разрешение проблемы с Warning: mysqli::mysqli(): T... На моём хостинге можно выбирать версию PHP. На выбор предоставляются PHP 5.2 / 5.3 / 5.4 / 5.5 / 5.6. Много лет назад, когда я только создавал свой ...
Как просто получить данные из DataTable... Как получить данные из DataTable в c# В одной из предыдущих статей был показан пример работы с базой данных Mysql и c#. После этого многие стали обра...