Erreur sur le pointage vers une fonction dans une propriété textbox si valeur nu

Résolu
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 4 août 2007 à 10:28
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011 - 4 août 2007 à 20:02
Bonjour,
J'ai un (un autre ...) Pb sur un textbox dont la valeur est null
Le contexte :
Un textbox à l'intérieur d'un formview bindé sur le champs date d'une table (via un objectdatasource. Dans la propriété tooltip de ce textbox, je fait appel à une fonction qui me donne l'age en fonction de la date de naissance.
Si le champs date est null, il me renvoi :
Détails de l'exception: System.InvalidCastException: La conversion de la chaîne "" en type 'Date' n'est pas valide.

Voici la balise :
' tooltip = '<%# calculAge(eval("dateNaissanceUsager", "{0:d}")) %>' Width="90px">

Le code VB (juste pour info, à mon avis) :

' fonction calcul d'age

Friend
Function calculAge(
ByRef dateNaissance
As DateTime)
As
String

If dateNaissance.Year.ToString
IsNot
Nothing
Then

Dim age
As Int16age = DateTime.Now.Year - dateNaissance.Year

' calcul du nbr d'ann‚e (age)

Dim dateAnniv
As
New DateTime(DateTime.Now.Year, dateNaissance.Month, dateNaissance.Day)
'recherche de la date d'anniversaire de l'ann‚e en cours

If dateAnniv > DateTime.Now
Then
' test si date anniversaire est aprŠs aujourd'huiage += -1

'retrait d'un an si l'anniversaire n'est pas encore pass‚

End
If

Dim ageString
As
StringageString = age.ToString +

" ans"

Return ageString

Else

Dim ageString
As
StringageString =

Nothing

Return ageString

End
If

End
Function

Merci d'avance

5 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
4 août 2007 à 18:23
Salut,
il faut simplement que dans ta requete d'extraction tu force une date si null genre :
select champ1, champ2, isnull(champ_date, '01/01/1900') from table

puis dans ta fonction VB tu teste si date = "01/01/1900" tu affiche un msg du genre "date non renseignée"
Bon, c'est une solution, peut etre pas la meilleure...
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
4 août 2007 à 18:27
Ou alors as tu essayé de changer juste la première ligne de ta fonction en :

If dateNaissance IsNotNothingThen

puisque VB essaye de convertir en toString() avant de calculer le :
'not nothing'
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
4 août 2007 à 19:21
Bonjour Yann !
Pour la seconde solution, c'est pas possible car il ne va pas jusqu'à la fonction, il plante avant. (je viens de tester).
Pour la première soltion c'est envisageable mais bon, comme tu dis, c'est pas nickel ...
Celà dit, si personne n'a d'autre solution, c'est ce que je vais faire.
Merci.
@+
0
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
4 août 2007 à 19:23
Du coup, j'ai une question subsidiaire mais je vais faire un autre post (pour placer ta solution dans un gridview). A moins que tu ais déjà la réponse ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
equinoxe83 Messages postés 240 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 18 février 2011
4 août 2007 à 20:02
Finalement je n'ai pas besoin de la soltuion sur le gridview car il utilise une autre requête.
Merci pour ton aide Yann.
Ca marche nickel!
0
Rejoignez-nous