Utilisateur anonyme
-
Modifié le 8 sept. 2008 à 13:50
Utilisateur anonyme -
8 sept. 2008 à 13:50
Bonsoir,
J'ai un soucis de DBNull lors du Bindage.
J'utilise la méthode la plus simple, aucun contrôle Data. J'utilise juste mes Textbox et DropDownList dans ma page et j'insère les données venant de SQL Server dans ceux-ci par code champ par champ, textbox par textbox.
Exemple : tbNom.Text = myReader("nom")
Tout va bien, sauf quand de nouveau quand mon champ nom (en nvarchar) dans SQL Server est vide. Je voudrais éviter de mettre une valeur par défaut dans SQL Server pour résoudre ce souci car j'ai beaucoup trop de champs. J'ai une centaine de Textbox à binder.
Voici l'erreur :
La conversion du type 'DBNull' en type 'String' n'est pas valide.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code. Que faut il faire pour vérifier d'abord si myReader("nom") est DBNull ou pas ?
J'avais mis au départ tout mes myReader entre le blog Try/Catch, mais le souci c'est que dès qu'il tombait sur un champ qui était DBNull, il ne remplissait pas mes Textbox d'après. Il arrêtait le processus.
J'essaye de trouver une solution au plus simple car comme j'ai dis plus haut, j'ai une centaine de textbox de données à remplir. Le plus simple serait sûrement de faire une fonction du genre TestDBNull(myReader("nom")) qui vérifie d'abord si mon reader nom est DBNull ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 7 sept. 2008 à 18:17
Salut,
Toute implémentation de data reader (donc ici SqlDataReader) doit posséder une méthode IsDBNull définie par l'interface IDataRecord.
Et de mémoire la classe Convert expose aussi cette méthode.