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

[Résolu]
Signaler
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011
-
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011
-
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

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
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...
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
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'
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011

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.
@+
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011

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 ...
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011

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!