Heim > Backend-Entwicklung > C++ > Enthält mein SqlDataReader diese Spalte?

Enthält mein SqlDataReader diese Spalte?

Linda Hamilton
Freigeben: 2024-12-31 12:19:10
Original
913 Leute haben es durchsucht

Does My SqlDataReader Contain This Column?

So überprüfen Sie das Vorhandensein von Spaltennamen in einem SqlDataReader

In Datenzugriffsebenen kann die Erstellung einer konsistenten Methode zur Handhabung verschiedener gespeicherter Prozeduren hilfreich sein Dies ist eine Herausforderung, insbesondere wenn mit Spalten gearbeitet wird, die nicht von allen Prozeduren gemeinsam genutzt werden. Um dieses Problem in C# zu lösen, besteht eine wirksame Lösung darin, zu überprüfen, ob eine bestimmte Spalte in einem SqlDataReader-Objekt vorhanden ist.

Um dies zu erreichen, kann eine Erweiterungsmethode implementiert werden:

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

This Die Methode durchläuft die Felder des SqlDataReader und vergleicht die Namen mit dem angegebenen Spaltennamen, wobei die Groß-/Kleinschreibung außer Acht gelassen wird. Wenn die Spalte gefunden wird, wird true zurückgegeben. Dieser Ansatz wird der Verwendung von Ausnahmen für die Steuerlogik vorgezogen, da dies Auswirkungen auf die Leistung haben und zu Fehlalarmen bei der Ausnahmebehandlung führen kann.

Außerdem ist die Verwendung von GetSchemaTable() zwar eine weitere Option, wird jedoch nicht vollständig unterstützt und führt zu Leistungseinbußen . Daher ist das Durchlaufen der Felder eine zuverlässige und leistungsstarke Methode zum Überprüfen der Spaltenexistenz in einem SqlDataReader-Objekt.

Das obige ist der detaillierte Inhalt vonEnthält mein SqlDataReader diese Spalte?. 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