IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Gestion des Date Null


Sujet :

Accès aux données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2004
    Messages : 47
    Points : 36
    Points
    36
    Par défaut Gestion des Date Null
    Bonjour,

    Sous VB 2005 avec un DataSet créer automatiquement, je souhaite gérer des champs de type DATE avec des valeurs "nulles".

    Exemple je rentre la date de naissance --> tout vas bien.
    Si je ne connais pas la date, lorsque je fait un update, il me fait une erreur.

    Est-ce quelqu'un à une idée pour gérer des dates "nulles" ou "vides" ??

    Please help.

    Merci

  2. #2
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Bonjour,

    Si ta colonne est de type DateTime (ou Date) et que tu lui envois un string, une conversion est faite automatiquement si la date est valide
    Par contre, si ta date n'est pas valide (comme un string vide), cela provoquera une erreur.

    Si ta zone est vide, il faut envoyer la valeur DBNull.Value

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2004
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Justement,

    Je n'arrive pas à mettre un DBNUll.value dans la colonne il me dit
    "Une valeur de type System.DBNull ne peut pas être convertie en 'Date'
    Et si je met Nothing lorsque je fait un Adapter.Update il me provoque une erreur : "Valeur de caractère non valide pour la spécification."

    J'ai déclarer AllowDBNull = True dans le DataSet VB et dans la base SQL.

    Je suis bloqué

  4. #4
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Bonjour,

    Peux-tu montrer exactement ce que tu fais pour effectuer l'update ?

    (Je remarque qu'on est voisin, j'habite à ENSISHEIM)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2004
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Voici comment je met la date dans le DataSET

    'Je charge la ligne de la DbB

    LigneMembre = CType(oDataSet.Membres.Rows(Index), Dataset.MembresRow)

    'Je met la date dans la ligne

    LigneMembre.DateNaiss_membre = DBNull.Value

    Là il me souligne DBNull.value en me disant :
    "Une valeur de type System.DBNull ne peut pas être convertie en 'Date'

    Si je met Nothing il me dit que c'est bon mais c'est là que le l'update me provoque une erreure.
    "Valeur de caractère non valide pour la spécification."

    Voici la fonction qui fait l'update :

    Dim Adapter As New oDatasetTableAdapters.MembresTableAdapter()
    Adapter.Update(oDataSet.Membres.Rows(Index))

    Ca fait une semaine que je cherche mais je ne trouve pas...

    Si tu a une solution ou une autre approche je suis prenneur.

    Merci

  6. #6
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Bonjour,

    Désolé, j'ai mis du temps à comprendre.
    (Je n'ai pas encore eu l'occasion d'utiliser la nouvelle gestion des données sous 2005.)

    Donc sous 2005, il existe un moyen tout simple d'affecter le null à ta colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    LigneMembre = CType(oDataSet.Membres.Rows(Index), Dataset.MembresRow)
     
    'Je met la date dans la ligne
    if maDate = nothing then
        LigneMembre.SetDateNaiss_membreNull()
    else
        LigneMembre.DateNaiss_membre = maDate
    end if
     
    ...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2004
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Merci pour ton aide,

    En plus c'etait tout bête.

    @ Bientot.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Gestion des dates nulles provenant d'un recordset
    Par wperezrobles dans le forum Access
    Réponses: 11
    Dernier message: 28/09/2006, 18h02
  2. [VB6]gestion des dates
    Par luckelm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/04/2006, 20h25
  3. Application international (Gestion des dates)
    Par vsavoir dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/08/2005, 10h22
  4. Réponses: 3
    Dernier message: 13/08/2004, 18h52
  5. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo