首頁 >後端開發 >C++ >如何有效地檢查 C# SqlDataReader 中的列是否存在?

如何有效地檢查 C# SqlDataReader 中的列是否存在?

Susan Sarandon
Susan Sarandon原創
2024-12-30 16:21:11851瀏覽

How Can I Efficiently Check for Column Existence in a C# SqlDataReader?

確定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;
    }
}

使用此擴充方法,您可以在存取列的值之前輕鬆驗證列是否存在。這種方法被認為比依賴異常或 GetSchemaTable() 方法更好,因為它避免了效能損失和異常的不可靠本質。

雖然循環欄位可能會帶來輕微的效能開銷,但快取結果可以對於涉及循環內頻繁列檢查的場景,可以減輕這種影響。

以上是如何有效地檢查 C# SqlDataReader 中的列是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn