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

VB.NET 操作 MySQL 資料庫類庫:ODBC 3.51 驅動完整封裝範例

     編輯:MySQL 資料庫相關知識

針對 VB.NET 開發者,封裝 MySQL ODBC 3.51 驅動的資料存取類庫,含連線字串建構、DataSet 填充、參數化查詢、例外處理與呼叫範例。

前置需求

  1. 安裝 MySQL ODBC 3.51 Driver:https://dev.mysql.com/downloads/connector/odbc/3.51.html
  2. 安裝 Microsoft ODBC.NET Provider:https://www.microsoft.com/downloads/details.aspx?FamilyId=6CCD8427-1017-4F33-A062-D165078E32B1

類庫架構三大類別

類別職責
ManipStringForMySQL字串處理:跳脫單引號、日期格式化、LIKE 萬用字元轉義
MySQL_RequettesSQL 執行:SelectDataSet、ExecuteNonQuery、ExecuteScalar
MySQL_Utils工具方法:測試連線、取得版本、檢查表是否存在

核心方法:取得 DataSet

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

    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()
        Dim cmd As New OdbcDataAdapter(ReqSQL, MyConString)
        cmd.Fill(ds, NomDataSet)
        MyODBCConnexion.Close()
        Return ds
    Catch ex As OdbcException
        HttpContext.Current.Response.Write(ex.ToString())
    Catch ex As Exception
        HttpContext.Current.Response.Write(ex.ToString())
    End Try
    Return Nothing
End Function

呼叫範例

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

現代化遷移建議

  • 棄用 ODBC.NET:改用官方 MySQL Connector/NET (MySql.Data.dll),純 Managed Code、支援 ADO.NET 標準、效能更好
  • 連線字串:Server=localhost;Database=test;Uid=root;Pwd=xxx;CharSet=utf8mb4;
  • 非同步支援:await cmd.ExecuteReaderAsync()
  • 實體框架:EF Core + Pomelo.EntityFrameworkCore.MySQL

結語

ODBC 3.51 是歷史遺產,適合維護舊專案。新專案請直接使用 MySQL Connector/NET,獲得原生效能、型別安全、LINQ/EF Core 整合與長期支援。

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