Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : DBNull et FormView [ Base de données / SQL Server ] (fabienfs)

mercredi 20 août 2008 à 09:50:01 | DBNull et FormView

fabienfs

Membre Club Administrateur CodeS-SourceS
Bonjour,

J'ai un petit problème avec un FormView en mode Edit.
Dans l'EditTemplate de mon FormView, je bind les SelectedIndex de mes DropDownLists comme ceci :

<asp:DropDownList ID="mondd" runat="server" SelectedIndex='<%# Bind("monchamp") %>'>

Pas de problème sauf quand "monchamp" dans SQL Server est vide. Il me fait alors une erreur :
La conversion du type 'DBNull' en type 'Integer' n'est pas valide.

Même problème si aucun de mes Items de ma DropDownList n'est égal à "monchamp" dans SQL Server.

Comme contourner ce problème ?

Merci


A++


Fabien Schenkels (alias fabienfs)

mercredi 20 août 2008 à 10:39:23 | Re : DBNull et FormView

SuperBouly

Membre Club
Bonjour,
Tu peux commencer par mettre une valeur par défaut à ton champ dans sqlServeur, ce qui évitera le DBNull,  si j'ai bien compris ton problème.
Pour le reste, tu peux aussi mettre une expression-test du genre '<%# Expression(Eval("monchamp") )%>'  à condition de ne pas mettre la liaison bidirectionnelle (Eval à la place de Bind)
Mais pourquoi binder les selectedIndex ? Enfin, ça c'est toi qui doit le savoir !
SuperBouly

mercredi 20 août 2008 à 13:09:09 | Re : DBNull et FormView

fabienfs

Membre Club Administrateur CodeS-SourceS
Hello,

J'ai penser à mettre des valeurs par défaut SQL Server mais je ne sais pas si c'est la meuilleure solution...

C'est quoi la différence entre un Bind("") et un Eval("") ? J'avais essayer avec Eval mais ca n'avais pas marché.

Je Bind mon SelectedIndex car dans ma BDD, j'ai "Y" ou "N" si c'est oui ou non, et que c'est les mêmes résultats que j'ai dans mes ListItem Value.. Comme ceci :

<asp:DropDownList ID="ddYN" SelectedIndex='<%# Bind('MonChamp') %>' runat="server">
                        <asp:ListItem></asp:ListItem>
                        <asp:ListItem Value="Y">Oui</asp:ListItem>
                        <asp:ListItem Value="N">Non</asp:ListItem>
</asp:DropDownList>

Je pense que la meuilleure solution reste comme tu dis de faire une expression-test. Qu'est ce que tu en penses ?

Merci

A++


Fabien Schenkels (alias fabienfs)

jeudi 21 août 2008 à 08:15:05 | Re : DBNull et FormView

SuperBouly

Membre Club
bonjour,
Je ne vois peut-être pas bien ton problème, mais il me semble que ton champ "monChamp" devrait être un booleen ("bit" dans sqlServeret valant 0 par defaut) . Ensuite ta dropdownList pourrait avoir des values 0 pour Non et 1 pour Oui.

Pour Bind et Eval: pour faire rapide, Bind commande une liaison bidirectionnelle (pour lire , Insert et update) et Eval ne fait que lire.
On ne peut pas écrire par exemple : Text='<%# IIF(Bind('MonChamp')="Y", "Oui", "Non") %>' mais on peut écrireText='<%# IIF(Eval('MonChamp')="Y", "Oui", "Non") %>'  

SuperBouly

vendredi 22 août 2008 à 21:14:16 | Re : DBNull et FormView

fabienfs

Membre Club Administrateur CodeS-SourceS

Hello,

Entièrement d'accord sur l'utilisation du bit, c'est beaucoup plus simple. Seulement, j'ai le même problème pour des DropDownList contenant des nom de régions...

Je suis obligé d'utiliser le Bind vu que c'est un formulaire update.

Quand tu parlais de <%# Expression(Eval("monchamp") )%>
Tu as un exemple d'expression-test ? Car la je ne vois pas trop comment vérifier.

Merci à toi

A++


Fabien Schenkels (alias fabienfs)


samedi 23 août 2008 à 12:01:59 | Re : DBNull et FormView

SuperBouly

Membre Club
bonjour,
une expression-test, tu en as une juste au dessus:
IIF(Eval('MonChamp')="Y", "Oui", "Non") 

mais si tu es obligé pour l'update, il faut laisser "Eval" et mettre dans le monFormview.itemUpdating :
e.NewValues("monchamp")=MadropDownList.selectedValue
tu n'esdonc pas obligé de laisser "Bind"
D'autrePart, tu sais sans doute que la valeur de l'item d'un dropdownList, n'est pas forcément la même que le texte affiché.

SuperBouly

samedi 23 août 2008 à 14:24:11 | Re : DBNull et FormView

fabienfs

Membre Club Administrateur CodeS-SourceS
Hi,

J'ai essayer de plusieurs façon d'utiliser l'expression-test, mais il me sors toujours la même erreur..
"Le format de la chaîne d'entrée est incorrect."

Avec l'expresion-test suivant :

SelectedIndex='<%#IIf(Eval("federationYN") = "Y", "Oui", "Non") %>'

A++


Fabien Schenkels (alias fabienfs)

samedi 23 août 2008 à 22:40:27 | Re : DBNull et FormView

SuperBouly

Membre Club
selectedIndex est un entier, et ne peut valoir "Oui" ou "Non" qui sont des strings

SuperBouly

vendredi 5 septembre 2008 à 14:42:24 | Re : DBNull et FormView

fabienfs

Membre Club Administrateur CodeS-SourceS

Hello,

Désolé du retard pour la réponse.

J'ai abandonné l'utilisation du FormView pour ce que je veux faire. Je galère avec ca.
J'utilise la méthode la plus simple, aucun contrôle Data. J'utilise juste mes Textbox et DropDownList dans ma page et je fais tout le reste par code champ par champ, textbox par textbox. Mais le même problème se pose.

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 ?

Merci encore :)

A++


Fabien Schenkels (alias fabienfs)

dimanche 7 septembre 2008 à 17:35:21 | Re : DBNull et FormView

fabienfs

Membre Club Administrateur CodeS-SourceS
Hello,

Comme mon dernier message n'a plus aucun rapport avec l'utilisation du formview, j'ai ouvert un nouveau post.
http://www.aspfr.com/forum/sujet-DBNULL-ERREUR-LORS-BIND-AVEC-SQL-SERVER_1199129.aspx

Ca évitera les confusions.

A++


Fabien Schenkels (alias fabienfs)



Cette discussion est classé dans : problème, sql, formview, dbnull, monchamp


Répondre à ce message

Sujets en rapport avec ce message

problème SQL [ par fabiin ] Salutvoila ma requet :SELECT * FROM sons WHERE (((MotCle) Like '*a*')) OR (((Titre) Like '*a*')) ORDER BY id DESC;sous MS ACCESS cette requet marche p base de données sql server [ par gnuisnotunix ] hello tout le monde!j'ai un problème qui est le suivant, je suis entrain de faire un moteur de recherche pour mon site en asp, le problème c'est que j Problème -> accents dans les fonctions de chaînes [ par SgtDak ] Bien le bonjour, messieurs/damesVoici un petit problème que j'ai pour coder une page en ASP (VBScript, pas .NET)Je récupère dans une base de données d problème avec SQL [ par Mellise ] Bonjour,J'aimerai savoir comment utiliser un textbox dans une requette SQL en C#.C super urgentMerci d'avance problème d'opérateur absent dans une requête sql [ par barb1707 ] Bonjour tout le monde,j'essaye de mettre en place un forum et j'ai un problème d'opérateur lorsque je veux executer ma requête sql.voici le message qu Probleme majuscule minuscule SQL [ par motoetmotards ] Bonjour !Je dispose d'une base de données (contenant Nom, Prenom...) sur SQL Server.J'ai crée une page ASP consultant cette base depuis Front Page 200 Problème update dans recordset SQL server 2000 [ par bl4ckwolf ] Bonjour, J'ai un formulaire qui modifie un enregistrement dans ma table de client. Voilà quand je clique sur modifier, le script de modification se la Problème ASP + SQL server [ par kingstyle ] Mon problème est que je veux ecrire ici un nom dans ma table ACTEUR avec le champ nom_acteur. j ai utilisé la syntaxe proposé par le site, je voudrais problème "select" dans SQL access [ par marcbrenner ] Hello tout le monde !Je parcours depuis un certain temps les forums de ce site, mais j'y avais toujours trouvé une réponse...Là, soit j'ai TRES mal ch Problème requête SQL [ par systemic_anomaly ] Salut tout le monde, J'ai un problème avec une requête SQL pour mon application en ASP.NET. Voici la requête en question: select e.* from Employee


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.