Open():從連接池獲取可用物理連接(或建立新連接),標記為忙碌。Close() / Dispose():歸還連接到池,不銷毀物理連接(除非池滿或超時)。ADO.NET 默認啟用連接池(Pooling=true)。相同連接字符串共享池。物理連接創建昂貴,池化大幅提升性能。
using (var conn = new SqlConnection(connStr)) {
conn.Open(); // 從池獲取
using (var cmd = new SqlCommand(sql, conn)) {
// 執行命令
}
} // 自動 Dispose → 歸還池
using 保證即使拋異常也能歸還連接。SELECT 1 驗證或捕獲 SqlException 重試。Close() 斷開物理鏈路 → 實際歸還池。