SqlConnection 是 ADO.NET 與 SQL Server 溝通的管道,負責連線池管理、交易啟動、命令建立。正確的連接字串是一切操作的基石。
test.udl。test.udl,複製其中的連接字串行至程式碼。此法避免手寫連接字串拼寫錯誤,且可視覺化驗證連線。
| 特性 | DataSet | DataReader |
|---|---|---|
| 架構 | 離線記憶體快取,含 DataTable/DataRelation/Constraint | 唯讀、前進、資料流 |
| 導航 | 隨意游標移動、篩選、排序 | 僅 Read() 向前 |
| 記憶體 | 載入全部資料,佔用較大 | 逐列串流,記憶體極低 |
| 更新 | 支援離線編輯,再 DataAdapter.Update 批次寫回 | 不支援,需自行發 UPDATE 指令 |
| 適用場景 | 中小資料集、複雜關聯、需離線編輯、綁定 UI 控制項 | 大量資料唯讀、報表產生、資料轉移 |
ADO.NET 原生不支援伺服器端游標。若舊系統仰賴 ADO (COM) 的伺服器游標,可在專案「參考」加入 Microsoft ActiveX Data Objects x.x Library,透過 RCW (Runtime Callable Wrapper) 呼叫舊有 ADO 物件。但這只是過渡方案,長遠應重構為原生 ADO.NET 或 Entity Framework。
web.config/app.config <connectionStrings>,勿硬編碼。using 區塊確保 Connection、Command、Reader 正確釋放,歸還連線池。