封裝 SqlConnection 建立與管理邏輯,提供可重複使用的公用類別,支援多載連線方法,集中管理連線參數。
Option Explicit On
Imports System.Data.SqlClient
Namespace Sunerp.CommClass.Comm
' 連線參數結構
Public Structure PublicApplicationVal
Public Dbserver As String ' 資料庫伺服器名稱
Public UserId As String ' 登入帳號
Public UserPWD As String ' 登入密碼
Public DBase As String ' 資料庫名稱
Public DBTable As String ' 常用資料表名稱(擴充用)
Public QueryFieldValue As String ' 查詢欄位值(擴充用)
Public QueryFieldName As String ' 查詢欄位名稱(擴充用)
End Structure
Public Class DBaseBindComm
'''
''' 建立 SQL Server 連線物件
'''
''' 連線參數結構
''' SqlConnection 物件
Public Overloads Function LinkedSqlServer(ByVal IPublicApplication As PublicApplicationVal) As SqlConnection
Dim strconn As String = String.Format(
"Data Source={0};Initial Catalog={1};User ID={2};Password={3};",
IPublicApplication.Dbserver,
IPublicApplication.DBase,
IPublicApplication.UserId,
IPublicApplication.UserPWD)
Dim conn As New SqlConnection(strconn)
Return conn
End Function
' 可再新增無參數多載,從設定檔讀取預設值等...
End Class
End Namespace
Dim params As New PublicApplicationVal With {
.Dbserver = "192.168.1.100",
.DBase = "ERP_DB",
.UserId = "app_user",
.UserPWD = "P@ssw0rd"
}
Dim dbHelper As New DBaseBindComm()
Using conn As SqlConnection = dbHelper.LinkedSqlServer(params)
conn.Open()
' 執行命令...
End Using
Using 區塊自動釋放資源,符合最佳實務。