首頁 > 後端開發 > C++ > 我的 SqlDataReader 是否包含此列?

我的 SqlDataReader 是否包含此列?

Linda Hamilton
發布: 2024-12-31 12:19:10
原創
897 人瀏覽過

Does My SqlDataReader Contain This Column?

如何檢查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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板