Heim > Backend-Entwicklung > C++ > Wie kann ich die Spaltenexistenz in einem C#-SqlDataReader effizient prüfen?

Wie kann ich die Spaltenexistenz in einem C#-SqlDataReader effizient prüfen?

Susan Sarandon
Freigeben: 2024-12-30 16:21:11
Original
856 Leute haben es durchsucht

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

Bestimmen der Spaltenpräsenz in einem SqlDataReader-Objekt

In C# besteht beim Arbeiten mit einem SqlDataReader-Objekt, das möglicherweise Spalten enthält, die nicht von allen zugehörigen gespeicherten Prozeduren verwendet werden, die Möglichkeit zur Überprüfung denn die Existenz einer bestimmten Spalte wird entscheidend. Hier ist eine Erweiterungsmethode, die diesem Bedarf gerecht wird:

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;
    }
}
Nach dem Login kopieren

Mit dieser Erweiterungsmethode können Sie das Vorhandensein einer Spalte einfach überprüfen, bevor Sie auf ihren Wert zugreifen. Dieser Ansatz wird als bessere Praxis angesehen, als sich auf Ausnahmen oder die GetSchemaTable()-Methode zu verlassen, da er Leistungseinbußen und die Unzuverlässigkeit von Ausnahmen vermeidet.

Während das Durchlaufen der Felder zu einem leichten Leistungsaufwand führen kann, könnte das Zwischenspeichern der Ergebnisse dazu führen Mildern Sie diese Auswirkungen für Szenarien mit häufigen Spaltenprüfungen innerhalb einer Schleife.

Das obige ist der detaillierte Inhalt vonWie kann ich die Spaltenexistenz in einem C#-SqlDataReader effizient prüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage