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

ADO.NET 連接 MySQL 完整教學:Connector/NET 安裝、參考、程式碼範例

     編輯:MySQL 資料庫相關知識

環境準備

  1. 下載 MySQL Connector/NET:官網(選擇對應 .NET Framework 版本)。
  2. 安裝後,在專案 `bin` 目錄放入 `MySql.Data.dll`(或透過 NuGet 安裝 `MySql.Data`)。
  3. 程式碼頂端引入命名空間:
using MySql.Data.MySqlClient;

完整連線與查詢範例

string connStr = "Server=localhost;Uid=root;Pwd=your_password;Database=guestbook;";
string sql = "SELECT * FROM guestbook";

using (MySqlConnection conn = new MySqlConnection(connStr))
using (MySqlCommand cmd = new MySqlCommand(sql, conn)) {
    conn.Open();
    using (MySqlDataReader reader = cmd.ExecuteReader()) {
        StringBuilder sb = new StringBuilder();
        while (reader.Read()) {
            sb.Append(reader["id"]).Append(" ")
              .Append(reader["user"]).Append(" ")
              .Append(reader["pass"]).Append("
"); } lblResult.Text = sb.ToString(); // 顯示於 Label } }

關鍵點提醒

  • 連線字串:支援 `Port`、`SslMode`、`CharSet`、`ConnectionReset` 等進階選項。
  • 參數化查詢:防 SQL 注入,寫法 `cmd.Parameters.AddWithValue("@id", id);`。
  • 連線池:預設啟用,`Pooling=true;Min Pool Size=0;Max Pool Size=100;` 可調整。
  • 異步支援:.NET 4.5+ 可用 `ExecuteReaderAsync()`、`OpenAsync()` 提升吞吐。

從 SQL Server 遷移對照

SQL ServerMySQL
SqlConnectionMySqlConnection
SqlCommandMySqlCommand
SqlDataReaderMySqlDataReader
SqlParameterMySqlParameter
@param@param / ?param

語法幾乎相同,僅命名空間與類別前綴不同,遷移成本極低。

常見錯誤排查

  • Unable to connect to any of the specified MySQL hosts:檢查防火牆 3306、MySQL `bind-address`、帳號 `host` 欄位允許 `%` 或客戶端 IP。
  • Authentication plugin 'caching_sha2_password' not supported:Connector/NET 版本過舊,升級至 8.0.11+ 或帳號改用 `mysql_native_password`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved