首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Visual Studio 2010 連接 MySQL 完整步驟與 C# 範例代碼

     編輯:程式設計綜合問答

前置準備

  1. 安裝 MySQL Server 5.5+
  2. 下載 MySQL Connector/NET (官方 ADO.NET 驅動)
    官網:dev.mysql.com/downloads/connector/net/
    選擇版本 6.9.x 或 8.0.x (支援 .NET Framework 4.0+)

VS2010 專案設定

1. 加入參考

  • 專案右鍵 → 「加入參考」 → 「瀏覽」
  • 選擇安裝目錄下的 `MySql.Data.dll` (通常在 `C:\Program Files (x86)\MySQL\MySQL Connector NET 6.9\Assemblies\v4.0\`)

2. 引入命名空間

using MySql.Data.MySqlClient;
using System.Data;

完整連線與查詢範例

public class MySqlHelper {
    private readonly string _connStr = "Server=127.0.0.1;Port=3306;Database=testdb;Uid=root;Pwd=123456;Charset=utf8;";

    public DataTable ExecuteQuery(string sql, params MySqlParameter[] parameters) {
        using (var conn = new MySqlConnection(_connStr))
        using (var cmd = new MySqlCommand(sql, conn)) {
            if (parameters != null) cmd.Parameters.AddRange(parameters);
            var dt = new DataTable();
            try {
                conn.Open();
                using (var adapter = new MySqlDataAdapter(cmd)) {
                    adapter.Fill(dt);
                }
            } catch (MySqlException ex) {
                // 記錄日誌
                throw new ApplicationException("資料庫操作失敗", ex);
            }
            return dt;
        }
    }

    public int ExecuteNonQuery(string sql, params MySqlParameter[] parameters) {
        using (var conn = new MySqlConnection(_connStr))
        using (var cmd = new MySqlCommand(sql, conn)) {
            if (parameters != null) cmd.Parameters.AddRange(parameters);
            conn.Open();
            return cmd.ExecuteNonQuery();
        }
    }
}

// 使用範例
var helper = new MySqlHelper();
// 參數化查詢防注入
var dt = helper.ExecuteQuery("SELECT * FROM users WHERE age > @age AND status = @status",
    new MySqlParameter("@age", 18),
    new MySqlParameter("@status", "active"));

foreach (DataRow row in dt.Rows) {
    Console.WriteLine($"{row["username"]} - {row["email"]}");
}

連線字串關鍵參數

參數說明範例
Server主機 IP 或主機名127.0.0.1
Port連接埠3306
Database資料庫名稱mydb
Uid/Pwd帳號/密碼root/123456
Charset字元集 (重要!)utf8 或 utf8mb4
Pooling連線池 (預設 true)true
SslModeSSL 模式 (8.0+ 建議 None/Required)None

常見問題排查

  • Unable to connect to any of the specified MySQL hosts:檢查防火牆、MySQL `bind-address`、使用者主機權限 (`'user'@'%'`)
  • Character set 'utf8mb4' unsupported:Connector/NET 版本過舊,升級至 6.10+ 或 8.0+
  • Authentication plugin 'caching_sha2_password' not supported:MySQL 8.0 預設認證插件,Connector/NET 8.0.11+ 支援,或建立使用者指定 `mysql_native_password`

進階:Entity Framework 6 整合

NuGet 安裝 `MySql.Data.Entity`,`web.config` 註冊 Provider,即可使用 Code First / Database First 開發。

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