Подтвердить что ты не робот

Как подключиться к базе данных MySQL?

Я очень новичок в программировании на С#, но хочу иметь доступ к базам данных MySQL (у вас нет денег на MS SQL)

Однако у меня есть один вопрос; Я знаю, что для разработки приложения С# требуется, чтобы у вас были "MySQL connector/NET" и "MySQL для Visual Studio", но требует ли их и того, кто устанавливает приложение? (Возможно ли, что я могу просто освободить DLL соединителя с программой?)

Спасибо

EDIT: Требуются ли оба из них для конечного пользователя или только для соединителя? Есть ли что-нибудь еще, что им нужно?

4b9b3361

Ответ 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.Data​​strong >

Ответ 3

Вы должны загрузить MySQLConnection NET отсюда.

Затем вам нужно добавить MySql.Data.DLL в MSVisualStudio следующим образом:

  1. Открыть меню проекта
  2. добавлять
  3. Ссылка
  4. Перейдите в C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
  5. Добавить 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);
    }