在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; } }
使用此擴充方法,您可以在存取列的值之前輕鬆驗證列是否存在。這種方法被認為比依賴異常或 GetSchemaTable() 方法更好,因為它避免了效能損失和異常的不可靠本質。
雖然循環欄位可能會帶來輕微的效能開銷,但快取結果可以對於涉及循環內頻繁列檢查的場景,可以減輕這種影響。
以上是如何有效地檢查 C# SqlDataReader 中的列是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!