62 votes

Comment savoir si une colonne existe dans un DataRow VB.Net

Je lis un fichier XML dans un DataSet et ai besoin d'extraire les données du DataSet. Puisqu'il s'agit d'un fichier de configuration éditable par l'utilisateur, les champs peuvent être ou ne pas être là. Pour bien gérer les champs manquants, je voudrais m'assurer que chaque colonne du DataRow existe et n'est pas DBNull.

Je recherche déjà DBNull mais je ne sais pas comment m'assurer que la colonne existe sans qu'elle ait généré une exception ou une fonction qui effectue une boucle sur tous les noms de colonne. Quelle est la meilleure méthode pour faire cela?

181voto

John Chuckran Points 1279

Les DataRow ont la gentillesse de relier leur table sous-jacente. Avec la table sous-jacente, vous pouvez vérifier qu’une ligne spécifique contient une colonne spécifique.

     If DataRow.Table.Columns.Contains("column") Then
        MsgBox("YAY")
    End If
 

23voto

Phillip Wells Points 2625

Vous pouvez utiliser DataSet.Tables(0).Columns.Contains(name) pour vérifier si le DataTable contient une colonne portant un nom particulier.

-3voto

Anders Points 3058

Vous pouvez encapsuler votre bloc de code avec une instruction try ... catch. Lorsque vous exécutez votre code, si la colonne n'existe pas, une exception est générée. Vous pouvez ensuite déterminer quelle exception elle est générée et lui demander de gérer cette exception de manière différente si vous le souhaitez, par exemple en renvoyant "Column Not Found".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X