首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

.NET 連接 MySQL 資料庫的三大主流方案與完整程式碼實作

     編輯:MySQL 綜合教學

.NET 連接 MySQL 資料庫的三大核心方案

在 .NET 應用程式開發中,MySQL 作為開源關聯式資料庫的首選,其連接方式主要分為三大類:官方原生驅動、ODBC 標準介面、以及第三方商業元件。本文將深入解析這三種方案的特點、適用場景,並提供可直接編譯執行的完整 C# 程式碼範例。

方案一:MySQL Connector/NET(官方原生 ADO.NET 驅動)

這是 MySQL 官方提供的純 .NET 資料提供者,無需額外安裝 ODBC 驅動,效能最佳、部署最簡單。安裝後只需引用 MySql.Data.dll 並使用 MySql.Data.MySqlClient 命名空間即可。

連接字串範例:

Server=localhost;Database=test;Uid=root;Pwd=qing;

編譯指令: csc /r:MySql.Data.dll test.cs

方案二:ODBC 標準介面(MySQL Connector/ODBC)

適用於跨平台、跨語言的通用資料存取場景。需安裝兩個元件:ODBC.NET 資料提供者與 MySQL ODBC Driver(3.51 版或更新)。連接字串需指定驅動名稱:

DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=qing;OPTION=3

方案三:CoreLab MySQL Direct(商業級高效能元件)

第三方廠商 CoreLab 推出的 .NET 資料提供者,功能豐富、效能優異,適合企業級專案。引用命名空間 CoreLab.MySql,編譯時需參考 CoreLab.MySql.dll。

完整程式碼實作:三種連接方式並存展示

下列程式碼在單一類別中完整實作了三種連接方式的查詢操作,包含連線開啟、命令執行、資料讀取與資源釋放的標準流程:

using System;
using System.Data.Odbc;
using MySql.Data.MySqlClient;
using CoreLab.MySql;

class ConnectMySQL
{
    // CoreLab 方式
    public void Connect_CoreLab()
    {
        string constr = "User Id=root;Host=localhost;Database=qing;password=qing";
        using (MySqlConnection mycn = new MySqlConnection(constr))
        {
            mycn.Open();
            using (MySqlCommand mycm = new MySqlCommand("select * from shop", mycn))
            using (MySqlDataReader msdr = mycm.ExecuteReader())
            {
                while (msdr.Read())
                {
                    if (msdr.HasRows)
                        Console.WriteLine(msdr.GetString(0));
                }
            }
        }
    }

    // ODBC 方式
    public void Connect_Odbc()
    {
        string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                             "SERVER=localhost;" +
                             "DATABASE=test;" +
                             "UID=root;" +
                             "PASSWORD=qing;" +
                             "OPTION=3";
        using (OdbcConnection MyConn = new OdbcConnection(MyConString))
        {
            MyConn.Open();
            using (OdbcCommand mycm = new OdbcCommand("select * from hello", MyConn))
            using (OdbcDataReader msdr = mycm.ExecuteReader())
            {
                while (msdr.Read())
                {
                    if (msdr.HasRows)
                        Console.WriteLine(msdr.GetString(0));
                }
            }
        }
    }

    // 官方 Connector/NET 方式
    public void Connect_Net()
    {
        string myConnectionString = "Database=test;Data Source=localhost;User Id=root;Password=qing";
        using (MySqlConnection mycn = new MySqlConnection(myConnectionString))
        {
            mycn.Open();
            using (MySqlCommand mycm = new MySqlCommand("select * from hello", mycn))
            using (MySqlDataReader msdr = mycm.ExecuteReader())
            {
                while (msdr.Read())
                {
                    if (msdr.HasRows)
                        Console.WriteLine(msdr.GetString(0));
                }
            }
        }
    }

    public static void Main()
    {
        ConnectMySQL ms = new ConnectMySQL();
        ms.Connect_CoreLab();
        ms.Connect_Odbc();
        ms.Connect_Net();
    }
}

編譯與執行說明

將上述程式碼儲存為 test.cs,使用下列指令編譯(需同時參考兩個 DLL):

csc /r:CoreLab.MySql.dll /r:MySql.Data.dll test.cs

執行 test.exe 即可看到三種連接方式依序查詢資料庫的結果輸出。

方案選擇建議

  • 新專案首選:MySQL Connector/NET,原生、免費、維護性佳。
  • 異構系統整合:ODBC 方案,符合標準介面,便於跨平台遷移。
  • 高階功能需求:CoreLab 等商業元件,提供進階快取、連線池優化等企業級特性。

掌握這三大方案,即可靈活應對各類 .NET 與 MySQL 整合場景,確保資料存取層的穩健與高效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved