Maison > développement back-end > C++ > Comment puis-je vérifier efficacement l'existence d'une colonne dans un SqlDataReader C# ?

Comment puis-je vérifier efficacement l'existence d'une colonne dans un SqlDataReader C# ?

Susan Sarandon
Libérer: 2024-12-30 16:21:11
original
856 Les gens l'ont consulté

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

Détermination de la présence de colonnes dans un objet SqlDataReader

En C#, lorsque vous travaillez avec un objet SqlDataReader pouvant contenir des colonnes non utilisées par toutes les procédures stockées associées, la possibilité de vérifier car l'existence d'une colonne spécifique devient cruciale. Voici une méthode d'extension qui répond à ce besoin :

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;
    }
}
Copier après la connexion

Grâce à cette méthode d'extension, vous pouvez facilement vérifier la présence d'une colonne avant d'accéder à sa valeur. Cette approche est considérée comme une meilleure pratique que de s'appuyer sur des exceptions ou sur la méthode GetSchemaTable() car elle évite les pénalités de performances et le caractère peu fiable des exceptions.

Bien que parcourir les champs puisse introduire une légère surcharge de performances, la mise en cache des résultats pourrait atténuez cet impact pour les scénarios impliquant des vérifications fréquentes des colonnes au sein d'une boucle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal