web-dev-qa-db-fra.com

Comment se connecter à la base de données MySQL?

Je suis très nouveau en programmation C #, mais j'aimerais pouvoir accéder aux bases de données MySQL (ne pas avoir l'argent pour MS SQL)

Cependant j'ai une question; Je sais que vous devez disposer de "connecteur MySQL/NET" et de "MySQL pour Visual Studio" pour développer l'application C #, mais est-ce que la personne qui installe l'application en a également besoin? (Est-il possible que je puisse simplement libérer le connecteur DLL avec le programme?)

Merci

EDIT: Les deux sont-ils nécessaires pour l'utilisateur final ou uniquement pour le connecteur? Y a-t-il autre chose dont ils auraient besoin?

69
user3282097

Installez le package MySql.Data NuGet d'Oracle.

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();
        }        
    }
}

Exemple:

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();
}
73
Ocph23

vous pouvez utiliser le Gestionnaire de packages pour l'ajouter en tant que package et c'est la manière la plus simple de le faire. Vous n'avez besoin de rien d'autre pour travailler avec la base de données mysql.

Ou vous pouvez exécuter la commande ci-dessous dans la console du gestionnaire de packages

PM> Install-Package MySql.Data

NUGET Mysql.Data

49
Damith

Vous devez télécharger MySQLConnection NET à partir de ici .

Ensuite, vous devez ajouter MySql.Data.DLL à MSVisualStudio comme ceci:

  1. Ouvrir le projet de menu
  2. Ajouter
  3. Référence
  4. Naviguez jusqu'à C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
  5. Ajouter MySql.Data.dll

Si vous voulez en savoir plus, visitez: entrez la description du lien ici

Pour utiliser dans le code, vous devez importer la bibliothèque:

using MySql.Data.MySqlClient;

Exemple avec la connexion à la base de données Mysql (NO SSL MODE) au moyen de événement de clic :

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();
    }
  }

}
7
Sergio Perez

En regardant le code ci-dessous, je l'ai essayé et trouvé: Au lieu d'écrire DBCon = DBConnection.Instance();, vous devriez mettre DBConnection DBCon - new DBConnection(); (Cela a fonctionné pour moi)

et au lieu de MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection()); vous devriez mettre MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection()); (il manque le d)

3
Hope