Überprüfen Sie die Existenz der Spalte in SQLDATAREADER -Objekten
In Datenzugriffsebenen sind häufig Methoden erstellt, die Daten verarbeiten, die aus störten Verfahren zurückgegeben werden, die möglicherweise variierende Spaltenstrukturen haben. Für Szenarien, in denen ein gespeichertes Verfahren im Vergleich zu anderen eine zusätzliche Spalte zurückgibt, besteht ein Bedarf an, um die Methode zu ändern, um beide Szenarien zu verarbeiten. In diesem Artikel wird untersucht, wie Sie nach der Existenz einer bestimmten Spalte in einem SQLDATAREADER -Objekt überprüfen.
Lösung:
Die vorgeschlagene Lösung beinhaltet das Erstellen einer Erweiterungsmethode für die Idatarecord -Schnittstelle mit dem Namen Hascolumn. Diese Methode nimmt einen Spaltennamen als Parameter an und iteriert alle Spalten im Datensatz durch und vergleichen Sie jeden Spaltennamen mit dem bereitgestellten. Wenn eine Übereinstimmung gefunden wird, gibt es True zurück, was das Vorhandensein der Säule angibt; Ansonsten gibt es false zurück.
Hier ist der Code für die HasColumn -Erweiterungsmethode:
public static class DataRecordExtensions { public static bool HasColumn(this IDataRecord dr, string columnName) { for (int i = 0; iuseage:
, um festzustellen, ob ein SQLDATAREADER -Objekt eine bestimmte Spalte enthält, rufen Sie einfach die HasColumn -Methode auf dem Objekt auf und übergeben Sie den Spaltennamen, an dem Sie interessiert sind. Die Methode gibt true zurück, wenn die Spalte existiert, und anders falsch. Auf diese Weise können Sie unterschiedliche Spaltenstrukturen in gespeicherten Prozeduren auf robuste Weise verarbeiten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3