MySQL, считающаяся «самой популярной базой данных с открытым исходным кодом в мире», прошла долгий путь от своего скромного начала в качестве недорогого сервера баз данных до сервера, который управляет огромными веб-сайтами и важными бизнес-системами. Однако если вы разработчик ASP.NET, то всегда будете сталкиваться с недовольством: MySQL изначально разрабатывался для приложений на платформе UNIX, поэтому поддержка Windows вторична.
Но теперь версия MySQL для Windows имеет те же функции и стабильность, что и версия для UNIX, и считается жизнеспособным сервером баз данных для разработки под Windows. Теперь давайте посмотрим, как можно подключиться к базе данных MySQL в рамках .NET Framework с помощью ODBC.
Установка
Загрузите и установите версию MySQL для Windows. Установка проста: просто следуйте инструкциям, и вы сразу же приступите к работе. Если у вас возникнет проблема, вы можете обратиться на форум MySQL за помощью и решениями.
Чтобы соединить ASP.NET и MySQL, вам необходимо использовать ODBC.NET. Вообще говоря, DataProvider ODBC.NET является частью стандартной платформы .NET (версии 1.1 и выше), поэтому он будет автоматически установлен вместе с последней.
Как только вы подтвердите, что ODBC.NET установлен, вам необходимо будет загрузить драйвер ODBC для MySQL. Опять же, разработчики MySQL рады помочь — они предоставляют эти драйверы на своем веб-сайте. При загрузке файла вы можете прочитать документ часто задаваемых вопросов, в котором перечислены все проблемы, с которыми вы можете столкнуться во время установки драйвера MySQL ODBC в вашей системе.
Все готово? Теперь давайте начнем с кода.
Подключение к MySQL с помощью ASP.NET
Одно из моих любимых занятий — чтение, и когда я не пишу обучающие статьи, подобные этой, я нахожу тихий уголок, чтобы пополнить свой список библиографии. К сожалению, я не очень организованный человек, поэтому часто из-за этого возникает беспорядок.
Какое же это имеет отношение к теме, о которой мы сегодня поговорим? Что ж, это начало моего первого примера, который заключается в создании базы данных книг, подобных тем, что указаны в списке А.
Чтобы создать эту таблицу, используйте следующий SQL-запрос:
СОЗДАТЬ ТАБЛИЦУ `книги` (
`id` int(5) NOT NULL auto_increment,
`title` varchar(255) NOT NULL по умолчанию '',
`authors` varchar(255) NOT NULL по умолчанию '',
`year_of_publication` год (4) NOT NULL по умолчанию '0000',
`date_added` дата NOT NULL по умолчанию '0000-00-00',
ПЕРВИЧНЫЙ КЛЮЧ (`id`)
) ТИП=MyISAM;
Чтобы выполнить этот запрос, вы должны использовать клиентское программное обеспечение командной строки «mysql.exe» в папке «bin» в каталоге установки MySQL. Ниже приведены конкретные команды:
c:mysqlbin>mysql -u Guest -p тест
Введите пароль: ******
Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или g.
Ваш идентификатор подключения MySQL равен 13 к версии сервера: 4.0.12-nt.
Введите «help;» или «h» для получения справки. Введите «c», чтобы очистить буфер.
mysql> CREATE TABLE `books` (
-> `id` int(5) NOT NULL auto_increment,
-> `title` varchar(255) NOT NULL по умолчанию '',
-> `authors` varchar(255) NOT NULL по умолчанию '',
-> `year_of_publication` год(4) NOT NULL по умолчанию '0000',
-> `date_added` дата NOT NULL по умолчанию '0000-00-00',
-> ПЕРВИЧНЫЙ КЛЮЧ (`id`)
-> ) TYPE=MyISAM;
Запрос в порядке, затронуто 0 строк (0,02 сек.)
Как только таблица «books» создана, вы можете начать вставлять данные. В списке B перечислены некоторые элементы. Теперь сделайте то же самое с ASP.NET — выполните запрос SELECT (листинг C) и отобразите результаты в браузере. Если все в порядке — сервер MySQL работает, драйвер MySQL ODBC установлен правильно, а таблица Books содержит данные — вы должны увидеть страницу, подобную той, что показана на рисунке A.
C показано сообщение об ошибке, которое появляется, когда сценарий пытается получить доступ к несуществующей таблице базы данных (обратите внимание, что исключения, генерируемые внутренней структурой «try-catch», будут обрабатываться внешней структурой):
выше показано, как использовать серверный элемент управления DataGrid в MySQL и ASP.NET. О том, как можно использовать эти две технологии, можно сказать гораздо больше, поэтому я надеюсь, что эта статья и другие справочные ресурсы, приведенные выше, помогут вам почувствовать это;