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!