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

.NET 環境下透過 ODBC 正確存取 MySQL 資料庫完整指南

     編輯:MySQL 綜合教學

前言

MySQL 資料庫以輕量、高效著稱,雖早期版本不支援交易與預存程序,但在中小型專案中表現優異,甚至在特定情境下速度超越大型資料庫。若要在 .NET 環境下存取 MySQL,許多開發者第一反應是使用 OLEDB,但實測發現 System.Data.OleDb 無法直接連接 MySQL,會拋出「不支援 MSDASQL 提供程式」錯誤。所幸我們有更好的替代方案:ODBC.NET。

方案:使用 ODBC.NET Data Provider

ODBC.NET 是微軟免費提供的 .NET Framework 附加元件,需從微軟官網下載,系統需預先安裝 MDAC 2.7 或更新版本。此外,必須安裝 MySQL ODBC 驅動程式(下載位址:MySQL 官網),並在「ODBC 資料來源管理員」中設定 DSN(資料來源名稱)。

ODBC DSN 設定範例

核心物件與用法

ODBC.NET 的物件模型與 OLEDB、SQL Client 高度一致,主要類別包括:

  • OdbcConnection - 連線物件
  • OdbcCommand - 命令執行
  • OdbcDataAdapter - 資料配接器
  • OdbcDataReader - 唯讀、順向資料流

若專案原本使用 OleDb,幾乎可透過「尋找取代」快速完成遷移。

程式碼範例(C#)

try {
    string constr = "DSN=MySQL;UID=root;PWD=;";
    using (OdbcConnection conn = new OdbcConnection(constr)) {
        conn.Open();
        
        // 批次插入 10 萬筆測試資料
        string query = "INSERT INTO test.dbtable VALUES (10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";
        using (OdbcCommand cmd = new OdbcCommand(query, conn)) {
            for (int i = 0; i < 100000; i++) {
                cmd.ExecuteNonQuery();
            }
        }
        
        // 查詢驗證
        query = "SELECT * FROM test.dbtable";
        using (OdbcCommand cmd2 = new OdbcCommand(query, conn)) {
            using (OdbcDataReader reader = cmd2.ExecuteReader()) {
                while (reader.Read()) {
                    // 處理資料...
                }
            }
        }
        
        // 清理測試資料
        query = "DELETE FROM test.dbtable";
        using (OdbcCommand cmd3 = new OdbcCommand(query, conn)) {
            cmd3.ExecuteNonQuery();
        }
    }
} catch (Exception ex) {
    MessageBox.Show(ex.Message);
}

重點提醒

  • 連線字串採用 DSN 方式,避免硬編碼伺服器位址
  • 善用 using 區塊自動釋放非受控資源
  • 大量寫入時建議啟用交易以提升效能

掌握 ODBC.NET 操作 MySQL 的要領,即可在 .NET 專案中穩定、高效地整合 MySQL 資料庫。

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