在為多個預存程序建立單一物件的資料存取層中,處理具有不同列集的場景可能會帶來挑戰。為了滿足這種情況,了解如何檢查 SqlDataReader 物件中的列是否存在至關重要。
一種有效的解決方案是利用資料記錄擴展方法,該方法迭代字段計數並比較列名稱的大小寫 -麻木不仁地。這種方法避免了控制邏輯的效能開銷和異常處理。
以下是包含 HasColumn 方法的 DataRecordExtensions 類別的範例:
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; } }
透過擴展 IDataRecord 接口,您可以方便地使用此方法檢查列是否存在。基於效能原因,避免使用控制邏輯異常或 GetSchemaTable()。
以上是如何有效地檢查 SqlDataReader 中的列是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!