Mysql data mysqlclient как подключить
Перейти к содержимому

Mysql data mysqlclient как подключить

  • автор:

Подключение к БД Mysql, получение данных

Для подключения к MySql на C# используйте к примеру библиотеку MySql.Data (MySql Connector/NET).

Пример

Добавьте пространство имен

using MySql.Data.MySqlClient; 

Затем создайте строку подключения при помощи класса MySqlConnectionStringBuilder

MySqlConnectionStringBuilder stringBuilder = new MySqlConnectionStringBuilder(); stringBuilder.Server = "localhost"; stringBuilder.UserID = "root"; stringBuilder.Password = ""; stringBuilder.Database = "table"; string connectionString = stringBuilder.ToString(); 

После чего создайте подключение к MySql.

MySqlConnection connection = new MySqlConnection(connectionString); 

Создайте команду и установите SQL запрос.

uint command = connection.CreateCommand(); command.CommandText = "SELECT * FROM `users` WHERE `id` = @id"; command.Parameters.AddWithValue("@id", id); // Заметьте, можно использовать параметры. 

Откройте подключение, вызовите MySqlDataReader и считывайте результат.

connection.Open(); string name = null; string email = null; using (MySqlDataReader reader = command.ExecuteReader()) < while (reader.Read()) // reader.Read() возвращает true и переходит к следующему ряду. < name = reader.GetString("Name"); email = reader.GetString("Email"); >> connection.Close(); 

Подключение и работа с MySQL в VB.NET

Поскольку в VB нет стандартного механизма подключения к MySQL было принято решение использовать не ODBC, а Connector/NET.
Для начала необходимо подключить библиотеку коннектора.
По умолчанию в Solution Explorer’е существует пункт My Project. Его собственно и выбираем, далее переходим в References.
Должно выглядеть примерно так, но соответственно без MySql.Data. У меня уже подключена эта библиотека.
Нажимаем добавить (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 > Таким образом, через 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 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 
  • vb.net
  • MySQL connector/NET
  • tutorial

C# Работа с MySql. Подключение, запросы

Сегодня мы поговорим о MySql. СУБД, которую поддерживает почти любой хостер. А конкретно о том, как подключиться к подобной базе данных и работать с ней.

Для начала нужно скачать официальный коннектор для работы с базами данных MySql на платформе .NET. Для этого переходим по этой ссылке.

dotnet_mysql1

Начинаем установку. Тут, в принципе, всё просто. Подводные камни (а также всякие панельки-браузеры) отсутствуют. В составе библиотеки для C#, VBasic, документация и прочее.

dotnet_mysql2

Теперь, когда всё установлено, нам нужно подключить библиотеку к проекту. По умолчанию при установки библиотеки распаковываются в «C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.5\Assemblies\v4.5». Добавляем в References «MySql.Data.dll».

После чего можно объявить:

using MySql . Data . MySqlClient ;

Теперь самое главное — подключение к базе данных:

string serverName = «mysql.site.ru» ; // Адрес сервера (для локальной базы пишите «localhost»)
string userName = «admin» ; // Имя пользователя
string dbName = «myTestDb» ; //Имя базы данных
string port = «3306» ; // Порт для подключения
string password = «password123» ; // Пароль для подключения
string connStr = «server crayon-h»> + serverName +
«;user crayon-h»> + userName +
«;database crayon-h»> + dbName +
«;port crayon-h»> + port +
«;password crayon-h»> + password + «;» ;
MySqlConnection conn = new MySqlConnection ( connStr ) ;
conn . Open ( ) ;
string sql = «SELECT * FROM table1» ; // Строка запроса
MySqlScript script = new MySqlScript ( conn , sql ) ;
int count = script . Execute ( ) ;
richTextBox1 . Text += ( «Executed » + count + » statement(s).» ) ;
richTextBox1 . Text += ( «Delimiter: » + script . Delimiter ) ;

Вся информация (адрес для доступа к СУБД, имя пользователя, пароль, порт) есть у хостера. Эту информацию можно найти в личном кабинете, или запросить к ней доступ у техподдержки.

Многие хостеры требуют дополнительной защиты по IP. То есть нужно в настройках вашего аккаунта добавить свой IP в список «безопасных» адресов. Иначе ничего не получится.

В любом случае я крайне не рекомендую использовать код, представленный выше, в клиентских приложениях (то есть в виде программ-«.exe»), которые будут распространяться в интернете/продаваться. Дело в том, что с помощью дизасемблера можно вытащить подобную информацию из приложения. А это значит, что злоумышленник сможет получить доступ к вашей базе данных.

Выходов из ситуации много. Из первого, что пришло в голову:

1) Можно для каждого клиента выделять в СУБД отдельную базу данных и отдельного пользователя. Если даже злоумышленник получит информацию для доступа — он сможет получить данные только касающиеся его аккаунта. Из минусов данного пункта: неудобно, сложно, отдельные манипуляции для каждого нового пользователя.

2) На мой взгляд верный способ — написать на PHP/ASP.Net скрипт-прослойку, которая будет принимать запросы и выдавать данные обратно, например в том же формате JSON. В данном случае всё, что сможет получить злоумышленник — это адрес скрипта и понять структуру запрашиваемых данных. Напрямую программа с СУБД уже не взаимодействует. Но есть угроза того, что зная как запрашивать данные и зная адрес скрипта — злоумышленник получит доступ к чужой информации. Для защиты от этого можно проверять логин-пароль при запросе в скрипте для конкретного пользователя.

Кстати говоря — код выше только делает запросы, но не получает результаты. Для получения данных — нужно использовать следующий код:

Как установить MySQL Connectors

Чтобы начать работать с СУБД MySQL Вам потребуется скачать и установить MySQL Connector — это драйвер, который позволяет клиентским приложениям подключаться к серверам MySQL.

Установка

Для начала идём на официальный сайт mysql.com

поиск официального сайта

После открытия главной страницы переходим на вкладку Downloads

выбор вкладки

В самом низу страницы находим заголовок MySQL Community Edition (GPL) и нажимаем на ссылку Download from MySQL Developer Zone.

страница для разработчиков

Находим в списке пункт MySQL Connectors, затем подпункт Connector/Net и нажимаем на ссылку DOWNLOAD.

выбор драйвера

Выбираем платформу Microsoft Windows и снова нажимаем на кнопку Download.

выбор платформы

На следующей странице, в самом низу, нажимаем на строку: No Thanks, just start my download.

ссылка на скачивание

После того, как файл будет скачен, запускаем файл установщик и всё время жмём далее.

файл установщик

окно начала установки

В ходе установки в GAC автоматически будут добавлены dll файлы библиотек для работы с MySQL, а остальные файлы будут помещены в папку:

C:\Program Files\MySQL\MySQL

Добавление сборки в проект

После установки необходимо добавить в проект dll файл или сборку Mysql.Data, а точнее ссылку на сборку. Для этого перейдите в окно Solution Explorer и нажмите правую кнопку мыши на имени текущего проекта либо на папке References, после чего в появившемся меню выберите пункт Add Reference.

меню

Откроется новое окно, перейдите на вкладку .NET и выберите в списке сборку Mysql.Data.

добавление ссылки на сборку

результат

Если при написании кода Вы не хотите использовать полные имена для доступа к типам сборки Mysql.Data, то добавьте следующую строку:

using MySql.Data.MySqlClient;
  • Получение значения дочернего HTML элемента
  • Как удалить узел в xml документе?
  • Определение дня недели по дате

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *