如何檢查SqlDataReader 中是否存在列名
在資料存取層中,可以建立一致的方法來處理不同的預存程序具有挑戰性,尤其是在使用並非所有程式共享的色譜柱時。要在 C# 中解決此問題,一個有效的解決方案是檢查 SqlDataReader 物件中是否存在特定列。
要實現此目的,可以實現擴充方法:
public static class DataRecordExtensions { public static bool HasColumn(this IDataRecord dr, string columnName) { for (int i = 0; i < dr.FieldCount; i++) { if (dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)) return true; } return false; } }
這方法迭代 SqlDataReader 的欄位並將名稱與提供的列名稱進行比較,不考慮大小寫。如果找到該列,則傳回 true。這種方法優於使用控制邏輯的異常,後者會影響效能並導致異常處理中的誤報。
此外,雖然使用 GetSchemaTable() 是另一種選擇,但它不受完全支持,並且會產生效能開銷。因此,循環遍歷欄位是檢查 SqlDataReader 物件中列是否存在的可靠且高效能的方法。
以上是我的 SqlDataReader 是否包含此列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!