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

Comment vérifier efficacement l'existence d'une colonne dans un SqlDataReader ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-04 03:15:39304parcourir

How to Efficiently Check for Column Existence in a SqlDataReader?

Vérification de l'existence d'une colonne dans un objet SqlDataReader

Dans les couches d'accès aux données qui créent un objet unique pour plusieurs procédures stockées, la gestion de scénarios avec différents ensembles de colonnes peut poser un défi. Pour répondre à de telles situations, il est crucial de savoir comment vérifier l'existence d'une colonne dans un objet SqlDataReader.

Une solution efficace consiste à utiliser une méthode d'extension d'enregistrement de données qui parcourt le nombre de champs et compare les noms de colonnes au cas par cas. insensiblement. Cette approche évite les surcharges de performances et la gestion des exceptions pour la logique de contrôle.

Voici un exemple de classe DataRecordExtensions qui inclut la méthode HasColumn :

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

En étendant l'interface IDataRecord, vous pouvez facilement utiliser cette méthode pour vérifier l’existence des colonnes. Évitez d'utiliser des exceptions pour la logique de contrôle ou GetSchemaTable() pour des raisons de performances.

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