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
Susan Sarandonoriginal
2024-12-30 16:21:11854parcourir

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

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!

Déclaration:
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