驗證SqlDataReader 物件中的列是否存在
在資料存取層中,通常需要建立處理從儲存程序傳回的資料的方法,這些數據可能具有不同的柱狀結構。對於一個預存程序與其他預存程序相比傳回附加列的情況,需要修改方法來處理這兩種情況。本文探討如何檢查 SqlDataReader 物件中是否存在特定欄位。
解決方案:
建議的解決方案包括為 IDataRecord 介面建立擴充方法名為 HasColumn。此方法採用列名作為參數,並迭代記錄中的所有列,將每個列名與提供的列名進行比較。如果找到匹配,則返回true,表明該列存在;
下面是HasColumn 擴展方法的代碼:
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 物件包含特定列,只需呼叫該物件的HasColumn 方法並傳入您感興趣的列名稱。該方法將如果該列存在則傳回 true,否則傳回 false。這使您能夠以穩健的方式處理預存程序中不同的列結構。
以上是如何檢查 SqlDataReader 中的列是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!