Работа с базой данных 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.

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

результат

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

Похожие темы

Программирование для хакеров — 2... Тут начинали переводить статьи из цикла "программирование для хакеров": Введение. Ну а я продолжу. Однако, мой перевод будет невероятно вольным, а...
Атрибуты XML файла Атрибуты XML файла В прошлой статье Вы узнали, как работать с элементами и узлами XML файла. В этой статье Вы узнаете, что такое атрибуты, а так же р...
Создание раздела реестра испльзуя язык c#... Создание раздела реестра на языке c# От теории переходим к практике, для начала научимся открывать и создавать разделы реестра Создание раздела реес...
Обновление сервера Apache и его компонентов... Вот здесь я рассказывал, как установить локальный сервер Apache. Со временем выходят новые версии программ, и возникает необходимость обновления. Проц...
WebBrowser основные свойства для работы с контенто... WebBrowser работа с контентом И так, html страница была полностью загружена в control webBrowser, и теперь можно переходить к обработке полученных да...