J'ai une page de saisie d'un contact. Dans le code behind, j'ai créé une
classe Contact dans lequel j'ai des méthodes insert(), update() ...
J'ai une propriété DateNaissance de type DateTime.
Lorsque j'enregistre mon contact. dans le code behind j'instancie un nouveau
Contact.
Co = new Contact()
puis je mets à jour les propriétés.
Co.Nom = TextNom.Text;
Mais pour la Date de naissance qui n'et pas obligatoire j'ai un problème.
Car si aucune date n'est saisie j'ai une erreur lorsque je fais
Co.DateNaiss = TextDateNaiss;
Comment faire pour remplir ma propriété DateNaissance avec une valeur vide ?
Si ce n'est pas possible, suis je obligé de changer le type de ma propriété
de DateTime en string ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ambassadeur Kosh
> Comment faire pour remplir ma propriété DateNaissance avec une valeur vide
?
Si ce n'est pas possible, suis je obligé de changer le type de ma
propriété
de DateTime en string ?
1) on ne fait pas. la "nullabilité", c'est le probleme du datarow. 2) en 2005, on peut faire porcas avec un DateTime? au lieu d'un DateTime, ce qui permet de faire passer null dans la valeur. 3) la meilleure solution à mon sens, c'est une classe Nullable<T>. pour TÚteTime, on aurait ceci
struct NullableDateTime { public NullableDateTime() { }
public void SetToNull() { this.isNull=true ; }
public DateTime Value { get { Debug.Assert(!isNull) ; return value ; } set { this.value = value ; isNullúlse ; } }
public bool IsNull() { return isNull ; }
private bool isNull ; private DateTime value ; }
class ou struct, à voir selon ses préférences. "la" pratique pour detecter si le texte représente la valeur "#Null", en général, c'est un string nullText qui contient la valeur à comparer. il existe une façon de faire qui consiste à mettre des object partout et vehiculer DBNull quand c'est le cas ou la DateTime. je m'étend sur le sujet ?? :o)
> Comment faire pour remplir ma propriété DateNaissance avec une valeur vide
?
Si ce n'est pas possible, suis je obligé de changer le type de ma
propriété
de DateTime en string ?
1) on ne fait pas. la "nullabilité", c'est le probleme du datarow.
2) en 2005, on peut faire porcas avec un DateTime? au lieu d'un DateTime, ce
qui permet de faire passer null dans la valeur.
3) la meilleure solution à mon sens, c'est une classe Nullable<T>. pour
TÚteTime, on aurait ceci
struct NullableDateTime
{
public NullableDateTime()
{
}
public void SetToNull()
{
this.isNull=true ;
}
public DateTime Value
{
get
{
Debug.Assert(!isNull) ;
return value ;
}
set
{
this.value = value ;
isNullúlse ;
}
}
public bool IsNull()
{
return isNull ;
}
private bool isNull ;
private DateTime value ;
}
class ou struct, à voir selon ses préférences.
"la" pratique pour detecter si le texte représente la valeur "#Null", en
général, c'est un string nullText qui contient la valeur à comparer.
il existe une façon de faire qui consiste à mettre des object partout et
vehiculer DBNull quand c'est le cas ou la DateTime. je m'étend sur le sujet
?? :o)
> Comment faire pour remplir ma propriété DateNaissance avec une valeur vide
?
Si ce n'est pas possible, suis je obligé de changer le type de ma
propriété
de DateTime en string ?
1) on ne fait pas. la "nullabilité", c'est le probleme du datarow. 2) en 2005, on peut faire porcas avec un DateTime? au lieu d'un DateTime, ce qui permet de faire passer null dans la valeur. 3) la meilleure solution à mon sens, c'est une classe Nullable<T>. pour TÚteTime, on aurait ceci
struct NullableDateTime { public NullableDateTime() { }
public void SetToNull() { this.isNull=true ; }
public DateTime Value { get { Debug.Assert(!isNull) ; return value ; } set { this.value = value ; isNullúlse ; } }
public bool IsNull() { return isNull ; }
private bool isNull ; private DateTime value ; }
class ou struct, à voir selon ses préférences. "la" pratique pour detecter si le texte représente la valeur "#Null", en général, c'est un string nullText qui contient la valeur à comparer. il existe une façon de faire qui consiste à mettre des object partout et vehiculer DBNull quand c'est le cas ou la DateTime. je m'étend sur le sujet ?? :o)