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

.NET 操作 MySQL 實戰:基於 ODBC 的 VB.NET 類別庫封裝與應用

     編輯:MySQL 資料庫相關知識

前置需求:驅動程式安裝

在 .NET 專案中透過 ODBC 連接 MySQL,必須先安裝兩個核心元件:

  1. MySQL ODBC 3.51 Driver:官方下載頁
  2. Microsoft ODBC.NET Provider:Microsoft 下載中心 (支援 .NET Framework 1.0/1.1)

注意: 現代專案建議改用原生 MySQL Connector/NET (NuGet: MySql.Data),效能更佳且無需 ODBC 中介層。

類別庫架構設計

本範例封裝三大核心類別:

  • ManipStringForMySQL:SQL 字串清理與參數化處理 (防注入)。
  • MySQL_Requettes:核心查詢執行類別,提供 DataSet、DataReader、純量值等多種回傳模式。
  • MySQL_Utils:資料庫連線測試、伺服器狀態檢查等工具方法。

核心實作:取得 DataSet 範例程式碼 (VB.NET)

Public Shared Function MyODBCDataset(ByVal ReqSQL As String, _
    ByVal LaBase As String, ByVal Server As String, _
    ByVal PassWord As String, ByVal User As String, _
    ByVal NomDataSet As String) As DataSet

    ' 建立 ODBC 連線字串
    Dim MyConString As String = _
        "DRIVER={MySQL ODBC 3.51 Driver};" & _
        "SERVER=" & Server & ";" & _
        "DATABASE=" & LaBase & ";" & _
        "UID=" & User & ";" & _
        "PASSWORD=" & PassWord & ";" & _
        "OPTION=3;"

    Dim MyODBCConnexion As New OdbcConnection(MyConString)

    Try
        Dim ds As New DataSet()
        ' 使用 DataAdapter 自動開關連線並填充 DataSet
        Dim cmd As New OdbcDataAdapter(ReqSQL, MyConString)
        cmd.Fill(ds, NomDataSet)
        Return ds

    Catch MyOdbcException As OdbcException
        HttpContext.Current.Response.Write(MyOdbcException.ToString())
    Catch MyException As Exception
        HttpContext.Current.Response.Write(MyException.ToString())
    End Try

    Return Nothing
End Function

呼叫範例

Dim MonDatasetTemp As DataSet = MySQL_Requettes.MyODBCDataset( _
    SQL, _
    Constantes.ODBCBase, _
    Constantes.ODBCServer, _
    Constantes.ODBCPwd, _
    Constantes.ODBCUser, _
    "MonDataset")

關鍵技術細節解析

  1. 連線字串關鍵屬性: OPTION=3 代表 FOUND_ROWS 旗標,影響 ROW_COUNT() 行為。
  2. 資源管理: OdbcDataAdapter.Fill() 內部自動處理 Open()/Close(),但長連線場景建議手動控制 OdbcConnection 生命週期。
  3. 例外處理: 分別捕獲 OdbcException (驅動層錯誤) 與通用 Exception,記錄詳細堆疊資訊。
  4. 參數化查詢: 實務上應避免字串拼接 SQL,改用 OdbcCommand.Parameters.Add() 防止 SQL Injection。

現代化建議

  • 改用 MySQL Connector/NET (MySql.Data.MySqlClient 命名空間),原生支援非同步、連線池、EF Core 整合。
  • 採用 Dapper 或 Entity Framework Core 等 Micro-ORM/ORM 框架提升開發效率。
  • 連線字串勿硬編碼,應置於 appsettings.json / web.config 並加密敏感資訊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved