Hoe verbinding maken met MySQL-database?

Nieuw in C#-programmering, ik wil graag toegang hebben tot MySQL-databases.

Ik weet dat MySQL connector/NETen MySQL for Visual Studiovereist zijn voor C#-ontwikkeling.
Moet ik ze in mijn app installeren?
Is het mogelijk dat ik de connector-DLL met het programma kan vrijgeven?

Bijwerken:
Zijn beide vereist voor de eindgebruiker of alleen voor de connector?
Is er nog iets dat ze nodig hebben?


Antwoord 1, autoriteit 100%

Installeer Oracle’s MySql.DataNuGet-pakket.

using MySql.Data;
using MySql.Data.MySqlClient;
namespace Data
{
    public class DBConnection
    {
        private DBConnection()
        {
        }
        public string Server { get; set; }
        public string DatabaseName { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
        private MySqlConnection Connection { get; set;}
        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={0}; database={1}; UID={2}; password={3}", Server, DatabaseName, UserName, Password);
                Connection = new MySqlConnection(connstring);
                Connection.Open();
            }
            return true;
        }
        public void Close()
        {
            Connection.Close();
        }        
    }
}

Voorbeeld:

var dbCon = DBConnection.Instance();
dbCon.Server = "YourServer";
dbCon.DatabaseName = "YourDatabase";
dbCon.UserName = "YourUsername";
dbCon.Password = "YourPassword";
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();
}

Antwoord 2, autoriteit 51%

U kunt Pakketbeheer gebruiken om het als pakket toe te voegen en dit is de gemakkelijkste manier. U heeft verder niets nodig om met een MySQL-database te werken.

Of u kunt deze opdracht uitvoeren in de Package Manager Console:

PM> Install-Package MySql.Data

NuGet MySql.Data


Antwoord 3, autoriteit 17%

U moet MySQLConnection NET downloaden van hier.

Vervolgens moet u MySql.Data.DLLals volgt aan MSVisualStudio toevoegen:

  1. Open menu project
  2. Toevoegen
  3. Referentie
  4. Blader naar C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2
  5. MijnSql.Data.dll toevoegen

Als je meer wilt weten, ga dan naar: voer hier de linkbeschrijving in

Om in de code te gebruiken, moet je de bibliotheek importeren:

using MySql.Data.MySqlClient;

Een voorbeeld met verbinding met Mysql database (GEEN SSL MODE) door middel van Click event:

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

Antwoord 4, autoriteit 3%

Kijkend naar de onderstaande code, probeerde ik het en vond:
In plaats van DBCon = DBConnection.Instance();te schrijven, moet je DBConnection DBCon - new DBConnection();(Dat werkte voor mij)

en in plaats van MySqlComman cmd = new MySqlComman(query, DBCon.GetConnection());moet je MySqlCommand cmd = new MySqlCommand(query, DBCon.GetConnection());(de d ontbreekt)


Antwoord 5

Een andere bibliotheek om te overwegen is MySqlConnector, https://mysqlconnector.net/. Mysql.Data valt onder een GPL-licentie, terwijl MySqlConnector MIT is.


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

Other episodes