| 驅動 | 類型 | 特點 |
| MySQL Connector/NET (原 ByteFX.Data) | 開源、全 managed C# | 官方維護、NuGet 安裝、支援 .NET Framework/Core/Standard |
| MySQLDirect .NET (Core Lab) | 商業 | 效能優化、設計階段支援、試用版可用 |
| Mono MySQL Provider | 開源 | Linux/Mac 上 .NET 應用使用 |
專案引用與命名空間
// NuGet
Install-Package MySql.Data
// C# 程式碼
using MySql.Data.MySqlClient;
// ASP.NET WebForm
<%@ Import Namespace="MySql.Data.MySqlClient" %>
核心類別速查
| 類別 | 用途 |
| MySqlConnection | 管理連線池、開啟/關閉、ConnectionString |
| MySqlCommand | SQL 指令、參數化、Stored Procedure、ExecuteReader/NonQuery/Scalar |
| MySqlDataReader | 唯讀、順向、高效能資料流 |
| MySqlDataAdapter | 填充 DataSet、Update 回寫資料庫 |
| MySqlTransaction | 交易控制 BeginTransaction/Commit/Rollback |
| MySqlException | 錯誤代碼對應 MySqlErrorCode 列舉 |
基礎連線範例
string connStr = "Server=127.0.0.1;Port=3306;Database=test;Uid=dev;Pwd=secret;CharSet=utf8mb4;";
using (var conn = new MySqlConnection(connStr)) {
conn.Open();
using (var cmd = new MySqlCommand("SELECT id, name FROM users WHERE active=1", conn))
using (var reader = cmd.ExecuteReader()) {
while (reader.Read()) {
Console.WriteLine($"{reader.GetInt32(0)} - {reader.GetString(1)}");
}
}
}
進階主題
- 連線池:預設啟用,
Pooling=true;Min Pool Size=0;Max Pool Size=100 可調。
- 參數化查詢:
cmd.Parameters.AddWithValue("@id", id) 防注入。
- 非同步:
await cmd.ExecuteReaderAsync()(.NET 4.5+)。
- SSL:
SslMode=Required;CertificateFile=...。
- 上一篇文章: MySQL 系統表快速升級:mysql_fix_privilege_tables 腳本跨平台操作指南
- 下一篇文章: MySQL 分組統計實戰:多表關聯、LEFT JOIN 與 IFNULL 處理無對應資料
Copyright ©
程式碼之家 All Rights Reserved