首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

.NET 應用整合 MySQL 完全指南:Connector/Net、Direct Provider、Mono 支援與核心類別實戰

     編輯:MySQL 資料庫相關知識

MySQL 已成 Google、AP、NASA 等大型組織生產選擇,不僅因免費,更因成熟生態。本文梳理 .NET 平台對接 MySQL 的三大驅動選擇、核心命名空間與類別、連線與基本操作範式。

.NET 三大 MySQL 驅動選擇

驅動性質來源特點
MySQL Connector/Net (原 ByteFX.Data)官方、開源、免費MySQL 官網純 C# 實現、無原生依賴、NuGet 直裝、文檔完整、**首選**
MySQLDirect .NET Data Provider (Core Lab / Devart)商業、付費Devart效能調優、設計時支援、進階功能、需授權
Mono MySQL Provider開源、跨平台Mono 專案Linux/macOS 上 Mono 運行 .NET 應用連 MySQL 使用

核心命名空間與類別速查

using MySql.Data.MySqlClient;  // 引入命名空間
類別核心職責常用成員
MySqlConnection管理與 MySQL 伺服器/資料庫的連線ConnectionString、Open()/Close()、BeginTransaction()、ChangeDatabase()
MySqlCommand向伺服器發送 SQL 指令/預存程序CommandText、Parameters、ExecuteReader/NonQuery/Scalar()、Prepare()
MySqlDataReader唯讀、順向、流式讀取結果集Read()、GetInt32/GetString/...(ordinal)、HasRows、Close()
MySqlDataAdapter橋接 DataSet 與資料庫,批次填充/更新Fill(DataSet)、Update(DataSet)、Select/Insert/Update/DeleteCommand
MySqlExceptionMySQL 專屬例外,含錯誤碼Number (MySQL Error Code)、Message
MySqlParameter參數化查詢,防注入、型別安全ParameterName、MySqlDbType、Value、Direction

基礎連線與查詢範式 (C#)

string connStr = "Server=127.0.0.1;Port=3306;Database=testdb;Uid=app;Pwd=secret;SslMode=Preferred;";

using (var conn = new MySqlConnection(connStr))
{
    conn.Open();
    
    // 參數化查詢
    using (var cmd = new MySqlCommand("SELECT id, name FROM users WHERE status=@st LIMIT 10", conn))
    {
        cmd.Parameters.AddWithValue("@st", 1);
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine($"{reader.GetInt32(0)}: {reader.GetString(1)}");
            }
        }
    }
    
    // 異步支援 (Connector/Net 6.10+)
    // await conn.OpenAsync();
    // await reader.ReadAsync();
}

連線字串關鍵參數

  • SslMode=Preferred|Required|VerifyCA|VerifyFull|None:生產環境建議 Required/VerifyCA。
  • ConnectionTimeout:連線逾時秒數(預設 15)。
  • DefaultCommandTimeout:指令逾時(預設 30 秒,長查詢需調大)。
  • Pooling=true;MinPoolSize=0;MaxPoolSize=100:連線池預設開啟,高併發調大 MaxPoolSize。
  • CharSet=utf8mb4:確保完整 Unicode 支援(含 Emoji)。

進階主題導引

  • Entity Framework Core + Pomelo.EntityFrameworkCore.MySQL:現代 .NET ORM 首選,支援 LINQ、遷移、變更追蹤。
  • Dapper:輕量 Micro-ORM,手寫 SQL、效能極致、搭配 MySqlConnection 直用。
  • 備份/還原自動化:MySqlBackup.NET 程式化執行 mysqldump 流。
  • 效能調優:MySqlCommand.Prepare() 伺服器端預編譯、批次 ExecuteNonQuery、避免 SELECT *、善用覆蓋索引。

遷移提醒:舊版 ByteFX / MySql.Data 1.x 代碼

  • 命名空間舊為 ByteFX.Data.MySqlClient,新版統一 MySql.Data.MySqlClient。
  • 屬性名稱變更:Host→Server、UserId→Uid、Password→Pwd。
  • 請直接遷移至最新 Connector/Net (8.0+),NuGet 套件 MySql.Data 或 MySqlConnector(社區高效能替代品)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved