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

VB.NET 資料庫連線全攻略:ADO.NET 三大 Provider (SQL Server/OLE DB/ODBC) 完整連線字串與程式碼範本

     編輯:更多程式設計知識

VB.NET 建構於 .NET Framework 之上,資料存取核心為 ADO.NET。其架構採用 Provider 模式:針對不同資料庫來源提供對應的 Connection、Command、DataReader、DataAdapter 實作。本文完整列出三大標準 Provider 的適用資料庫、命名空間、連線字串模板與開啟/關閉程式碼範本。

三大標準 Data Provider 對照

Provider 名稱命名空間核心類別支援資料庫
SQL Server .NET Data ProviderSystem.Data.SqlClientSqlConnection 等SQL Server 7.0+ (僅限)
OLE DB .NET Data ProviderSystem.Data.OleDbOleDbConnection 等Access, Oracle, SQL Server, 其他 OLE DB 來源
ODBC .NET Data ProviderSystem.Data.OdbcOdbcConnection 等Access, Oracle, SQL Server, MySQL, VFP, 任何 ODBC 驅動

注意:System.Data.Odbc .NET Framework 1.0 不內建,需另行下載 Microsoft.Data.Odbc.dll 並加入工具箱/參考。.NET 2.0+ 已內建。

1. SQL Server .NET Data Provider (高效能、原生)


Imports System.Data.SqlClient

Dim connStr As String = "Data Source=ServerName;Initial Catalog=DBName;User ID=sa;Password=;"
Dim sqlConn As New SqlConnection(connStr)

Try
    sqlConn.Open()
    ' 執行命令...
Finally
    sqlConn.Close()  ' 或使用 Using 區塊自動 Dispose
End Try

連線字串關鍵字:Data Source/Server, Initial Catalog/Database, Integrated Security=SSPI (Windows 驗證), Connection Timeout, Pooling。

2. OLE DB .NET Data Provider (通用、支援 Access/Oracle)


Imports System.Data.OleDb

' 2.1 SQL Server (透過 SQLOLEDB)
Dim connStr1 As String = "Provider=SQLOLEDB;Data Source=Server;Initial Catalog=DB;User ID=sa;Password=;"

' 2.2 Access (Jet 4.0)
Dim connStr2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Data\Example.mdb;"

' 2.3 Oracle (MSDAORA)
Dim connStr3 As String = "Provider=MSDAORA;Data Source=OracleServer;User ID=uid;Password=pwd;"

Dim oleConn As New OleDbConnection(connStr2)
' 開啟/關閉同 SqlConnection

Access 2007+ (.accdb):Provider 改為 Microsoft.ACE.OLEDB.12.0,需安裝 Access Database Engine。

3. ODBC .NET Data Provider (最廣泛相容)


Imports System.Data.Odbc

' 系統 DSN
Dim connStrDsn As String = "DSN=MyOracleDSN;UID=uid;PWD=pwd;"

' 無 DSN (DSN-less) 範例:MySQL
Dim connStrMysql As String = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;Database=test;Uid=root;Pwd=;"

Dim odbcConn As New OdbcConnection(connStrMysql)
' 開啟/關閉同前

ODBC 驅動名稱查找技巧

  • 控制台 → 系統管理工具 → ODBC 資料來源 (32/64 位) → 驅動程式索引標籤 → 複製完整驅動名稱 (含大括號)。
  • 常見驅動:{SQL Server}, {Microsoft Access Driver (*.mdb)}, {Oracle in OraClient11g_home1}, {MySQL ODBC 5.3 Unicode Driver}。

通用最佳實務:Using 區塊確保資源釋放


Using conn As New SqlConnection(connStr)
    conn.Open()
    Using cmd As New SqlCommand("SELECT * FROM Users", conn)
        Using reader As SqlDataReader = cmd.ExecuteReader()
            While reader.Read()
                Console.WriteLine(reader("UserName"))
            End While
        End Using
    End Using
End Using  ' 自動呼叫 Dispose() → Close()

連線字串儲存與安全

  • 放入 app.config / web.config <connectionStrings> 區段。
  • 生產環境**嚴禁明文密碼**,使用 Integrated Security 或 Azure Key Vault / DPAPI 加密區段。
  • ConfigurationManager.ConnectionStrings("Name").ConnectionString 讀取。

Provider 選擇決策樹


目標資料庫 = SQL Server 7.0+  → SqlClient (最佳效能、功能完整)
目標資料庫 = Access/Oracle/其他 OLE DB → OleDb (次佳)
目標資料庫 = MySQL/PostgreSQL/舊系統/無 OLE DB 驅動 → Odbc (最廣泛)
跨資料庫抽象層需求 → 使用 DbProviderFactory 或 Entity Framework / Dapper

掌握三大 Provider 連線細節,即可應對 VB.NET 專案 99% 的資料庫整合場景。

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