Как подключиться к базе данных MySQL?
Я очень новичок в программировании на С#, но хочу иметь доступ к базам данных MySQL (у вас нет денег на MS SQL)
Однако у меня есть один вопрос; Я знаю, что для разработки приложения С# требуется, чтобы у вас были "MySQL connector/NET" и "MySQL для Visual Studio", но требует ли их и того, кто устанавливает приложение? (Возможно ли, что я могу просто освободить DLL соединителя с программой?)
Спасибо
EDIT: Требуются ли оба из них для конечного пользователя или только для соединителя? Есть ли что-нибудь еще, что им нужно?
Ответы
Ответ 1
Установите пакет Oracle MySql.Data
NuGet.
using MySql.Data;
using MySql.Data.MySqlClient;
namespace Data
{
public class DBConnection
{
private DBConnection()
{
}
private string databaseName = string.Empty;
public string DatabaseName
{
get { return databaseName; }
set { databaseName = value; }
}
public string Password { get; set; }
private MySqlConnection connection = null;
public MySqlConnection Connection
{
get { return connection; }
}
private static DBConnection _instance = null;
public static DBConnection Instance()
{
if (_instance == null)
_instance = new DBConnection();
return _instance;
}
public bool IsConnect()
{
if (Connection == null)
{
if (String.IsNullOrEmpty(databaseName))
return false;
string connstring = string.Format("Server=localhost; database={0}; UID=UserName; password=your password", databaseName);
connection = new MySqlConnection(connstring);
connection.Open();
}
return true;
}
public void Close()
{
connection.Close();
}
}
}
Пример:
var dbCon = DBConnection.Instance();
dbCon.DatabaseName = "YourDatabase";
if (dbCon.IsConnect())
{
//suppose col0 and col1 are defined as VARCHAR in the DB
string query = "SELECT col0,col1 FROM YourTable";
var cmd = new MySqlCommand(query, dbCon.Connection);
var reader = cmd.ExecuteReader();
while(reader.Read())
{
string someStringFromColumnZero = reader.GetString(0);
string someStringFromColumnOne = reader.GetString(1);
Console.WriteLine(someStringFromColumnZero + "," + someStringFromColumnOne);
}
dbCon.Close();
}
Ответ 2
вы можете использовать диспетчер пакетов, чтобы добавить его в качестве пакета, и это самый простой способ сделать. Вам не нужно ничего другого для работы с базой данных mysql.
Или вы можете выполнить команду ниже в консоли диспетчера пакетов
PM> Install-Package MySql.Data
NUGET Mysql.Datastrong >
Ответ 3
Вы должны загрузить MySQLConnection NET отсюда.
Затем вам нужно добавить MySql.Data.DLL
в MSVisualStudio следующим образом:
- Открыть меню проекта
- добавлять
- Ссылка
- Перейдите в
C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
- Добавить MySql.Data.dll
Если вы хотите узнать больше визита: введите описание ссылки здесь
Для использования в коде вы должны импортировать библиотеку:
using MySql.Data.MySqlClient;
Пример с подключением к базе данных Mysql (NO SSL MODE) посредством события Click:
using System;
using System.Windows;
using MySql.Data.MySqlClient;
namespace Deportes_WPF
{
public partial class Login : Window
{
private MySqlConnection connection;
private string server;
private string database;
private string user;
private string password;
private string port;
private string connectionString;
private string sslM;
public Login()
{
InitializeComponent();
server = "server_name";
database = "database_name";
user = "user_id";
password = "password";
port = "3306";
sslM = "none";
connectionString = String.Format("server={0};port={1};user id={2}; password={3}; database={4}; SslMode={5}", server, port, user, password, database, sslM);
connection = new MySqlConnection(connectionString);
}
private void conexion()
{
try
{
connection.Open();
MessageBox.Show("successful connection");
connection.Close();
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message + connectionString);
}
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
conexion();
}
}
}
Ответ 4
Посмотрев на код ниже, я попробовал его и нашел:
Вместо написания DBCon = DBConnection.Instance();
вы должны поставить DBConnection DBCon - new DBConnection();
(это сработало для меня)
и вместо MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection());
вы должны поместить MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection());
(отсутствует d)
Ответ 5
попробуйте это соединение
string Server = "server";
string UserName = "username";
string Password = "password";
string Database = "database";
string Port = "port";
public readonly string config = string.Format("Server = {0}; Port = {1}; Database = {2}; Uid = {3}; Pwd = {4}; pooling = true; Allow Zero Datetime = False; Min Pool Size = 0; Max Pool Size = 200; ", Server, Port, Database, UserName, Password);
using (var con = new MySqlConnection { ConnectionString = config })
{
con.Open();
}
Ответ 6
private void Initialize()
{
server = "localhost";
database = "connectcsharptomysql";
uid = "username";
password = "password";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "U`enter code here`ID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}