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

equinoxe83 240 Messages postés lundi 18 juin 2007Date d'inscription 18 février 2011 Dernière intervention - 4 août 2007 à 10:28 - Dernière réponse : equinoxe83 240 Messages postés lundi 18 juin 2007Date d'inscription 18 février 2011 Dernière intervention
- 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
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 4 août 2007 à 18:23
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...

Merci yann_lo_san 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de yann_lo_san
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 4 août 2007 à 18:27
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
equinoxe83 240 Messages postés lundi 18 juin 2007Date d'inscription 18 février 2011 Dernière intervention - 4 août 2007 à 19:21
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
equinoxe83 240 Messages postés lundi 18 juin 2007Date d'inscription 18 février 2011 Dernière intervention - 4 août 2007 à 19:23
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
equinoxe83 240 Messages postés lundi 18 juin 2007Date d'inscription 18 février 2011 Dernière intervention - 4 août 2007 à 20:02
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.