Vérification de l'existence des colonnes dans les objets SqlDataReader
Dans les couches d'accès aux données, il est souvent nécessaire de créer des méthodes qui traitent les données renvoyées par des procédures stockées qui peuvent ont des structures de colonnes différentes. Pour les scénarios dans lesquels une procédure stockée renvoie une colonne supplémentaire par rapport aux autres, il est nécessaire de modifier la méthode pour gérer les deux scénarios. Cet article explore comment vérifier l'existence d'une colonne spécifique dans un objet SqlDataReader.
Solution :
La solution suggérée implique la création d'une méthode d'extension pour l'interface IDataRecord. nommé HasColumn. Cette méthode prend un nom de colonne comme paramètre et parcourt toutes les colonnes de l'enregistrement, en comparant chaque nom de colonne à celui fourni. Si une correspondance est trouvée, elle renvoie vrai, indiquant la présence de la colonne ; sinon, il renvoie false.
Voici le code de la méthode d'extension 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; } }
Utilisation :
Pour déterminer si un objet SqlDataReader contient une colonne spécifique, appelez simplement la méthode HasColumn sur l'objet et transmettez le nom de la colonne qui vous intéresse. La méthode retournera vrai si la colonne existe, et false sinon. Cela vous permet de gérer différentes structures de colonnes dans les procédures stockées de manière robuste.
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!