Erreur sur le pointage vers une fonction dans une propriété textbox si valeur nu [Résolu]

Messages postés
240
Date d'inscription
lundi 18 juin 2007
Dernière intervention
18 février 2011
- - Dernière réponse : equinoxe83
Messages postés
240
Date d'inscription
lundi 18 juin 2007
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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
20
3
Merci
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...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
20
0
Merci
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'
Commenter la réponse de yann_lo_san
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Dernière intervention
18 février 2011
2
0
Merci
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.
@+
Commenter la réponse de equinoxe83
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Dernière intervention
18 février 2011
2
0
Merci
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 ...
Commenter la réponse de equinoxe83
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Dernière intervention
18 février 2011
2
0
Merci
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!
Commenter la réponse de equinoxe83

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.