- PVSM.RU - https://www.pvsm.ru -
Возникла необходимость подружить программу, написанную на VB, с сервером баз данных. Конечно, многочисленные сотоварищи — разработчики ПО могут поставить под сомнение мой выбор базы данных (и будут правы), назвав MSSQL самым простым и очевидным выбором. Но необходимо принять во внимание несколько фактов:
Поскольку в VB нет стандартного механизма подключения к MySQL было принято решение использовать не ODBC [1], а Connector/NET [2].
Для начала необходимо подключить библиотеку коннектора.
По умолчанию в Solution Explorer'е существует пункт My Project. Его собственно и выбираем, далее переходим в References.
Должно выглядеть примерно так [3], но соответственно без MySql.Data. У меня уже подключена эта библиотека.
Нажимаем добавить [4] (add), выбираем вкладку Browser и ищем библиотеку. Находится она по следующему пути: путь_куда_вы_ставили_mysql_connector/Assemblies/версия .net/MySql.Data.dll
После добавления библиотеки в проект обязательно измените параметр копировать локально (в Окне Свойств, Properties, при выделенном пункте списка) на true, иначе при запуске ПО на компьютере без MySQL Connector/NET приложение будет вываливаться с ошибкой dll.
После всего это можно спокойно приступать к написанию программы.
Для начала импортируем типы строчкой Imports MySql.Data.MySqlClient. Ее необходимо разместить в области определения до создания каких либо классов/объектов. Это необходимо для того, чтобы избавить нас от необходимости каждый раз писать полный путь до типов при определении переменных.
Imports MySql.Data.MySqlClient
Для создания подключения необходимо создать объект типа MySqlConnection и задать ей ConnectionString (строка подключения — описывает необходимые параметры для подключения к серверу).
'User id пишется с пробелом, это не опечатка.
Dim conn As New MySqlConnection("Server=127.0.0.1;User id=test_user;password=test_pwd;database=test_db")
Таким образом, через conn программа будет подключаться к указанной базе на localhost'е, с указанными логином и паролем.
Для исполнения запросов так же необходимо создать объект типа MySqlCommand.
Dim cmd As New MySqlCommand
Текст запроса при таком положении дел задается путем изменения свойства CommandText объекта cmd:
cmd.CommandText = "текст запроса"
Кроме того, важно не забыть указать, какое конкретно подключение использовать для выполнения запроса.
cmd.Connection = conn
Для выполнения различных запросов к базе данных в Connector/NET используются различные функции.
Так, например, для выполнения запросов, возвращающих только общее количество задействованных строк, используется функция ExecuteNonQuery, а для возвращающих данные (строки) — создается объект reader.
В итоге, на выходе мы имеем приложение, которое при загрузке выполняет запрос к базе данных.
Imports MySql.Data.MySqlClient
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New MySqlConnection("Server=127.0.0.1;User id=test_user;password=test_pwd;database=test_db")
Dim cmd As New MySqlCommand
Try
conn.Open()
cmd.Connection = conn
'Для выполнения запросов типа insert, update возможно использование ExecuteNonQuery, которая возвращает количество задействованных строк
cmd.CommandText = "INSERT INTO `test_table` (`id`, `test_info`) VALUES (NULL, 'some text info for current id');"
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
'описание того, что программа должна делать в случае возникновения каких-либо непредвиденных обстоятельств
End Try
'для получения данных из таблиц (запросы типа select) используется reader.
cmd.CommandText = "SELECT * FROM `test_table`"
Dim reader As MySqlDataReader
reader = cmd.ExecuteReader()
While reader.Read()
'получаем и сообщаем пользователю значения первого столбца базы данных для всех выбранных запросом строк
MsgBox(reader.GetValue(0))
End While
Catch ex As Exception
'описание действий при проблемах с подключением к БД
End Try
End Sub
End Class
Автор: doranych
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/tutorial/22438
Ссылки в тексте:
[1] ODBC: http://dev.mysql.com/downloads/connector/odbc/
[2] Connector/NET: http://dev.mysql.com/downloads/connector/net/
[3] так: http://imgin.ru/images/b523dbf2fbd2b5c0f49f41eeffb76828.jpg
[4] добавить: http://imgin.ru/images/f6344d4bd7a600df15d766d54d88aa9c.jpg
[5] Источник: http://habrahabr.ru/post/162329/
Нажмите здесь для печати.