| 類別 | 職責 |
|---|---|
ManipStringForMySQL | SQL 字串預處理(跳脫、型別轉換、防注入) |
MySQL_Requettes | 執行查詢/非查詢,回傳 DataSet/DataReader |
MySQL_Utils | 連線測試、伺服器狀態檢查、版本資訊 |
MyODBCDataset 回傳 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
' 建立 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()
Dim cmd As New OdbcDataAdapter(ReqSQL, MyConString)
cmd.Fill(ds, NomDataSet)
MyODBCConnexion.Close()
Return ds
Catch MyOdbcException As OdbcException
HttpContext.Current.Response.Write(MyOdbcException.ToString)
Catch MyException As Exception
HttpContext.Current.Response.Write(MyException.ToString)
End Try
End Function
Dim MonDatasetTemp As DataSet = MySQL_Requettes.MyODBCDataset( _
SQL, _
constantes.ODBCBase, _
constantes.ODBCServer, _
constantes.ODBCPwd, _
constantes.ODBCUser, _
"MonDataset")
OPTION=3 為 ODBC 選項位元組合(如 FOUND_ROWS、BIG_PACKETS 等),視驅動版本調整Using 區塊或 Finally 確保 Dispose()OdbcCommand.Parameters 避免 SQL 注入MySQL ODBC 3.51 屬舊版驅動,新專案強烈建議:
Install-Package MySql.Data 或 MySqlConnector (社區高效能版)OdbcConnection/Command/Adapter 替換為 MySqlConnection/Command/Adapter,API 高度相容