強型別 DataSet 將資料表、欄位、關聯轉化為編譯期可檢查的類別與屬性,避免字串索引拼寫錯誤與型別轉換例外,大幅提升可維護性與重構安全性。
// 弱型別:執行期才發現錯誤
string name = row["FirstName"].ToString(); // 欄位名拼錯不會報錯
int age = (int)row["Age"]; // 型別不符拋出例外
// 強型別:編譯期即可攔截
string name = personRow.FirstName; // IntelliSense 提示,重構自動更新
int age = personRow.Age; // 型別安全,無需轉換
Northwind.xsd)DataTable、TableAdapter、DataRow 衍生類別Northwind.ProductsDataTable、Northwind.ProductsRow 等強型別類別| 優點 | 缺點 |
|---|---|
| 編譯期型別檢查、IntelliSense、重構友善 | 結構變更需重新產生、檔案較大 |
| 減少執行期例外、程式碼可讀性高 | 不適合極動態 Schema 場景 |
建議:核心業務資料表務必使用強型別 DataSet;動態報表、臨時查詢可保留弱型別彈性。