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

VB.NET Discussion :

convertir une date en string


Sujet :

VB.NET

  1. #1
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut convertir une date en string
    Bonjour,
    j'aimerais afficher une date enregistrée dans la base de données(sql server management studio express 2005) dans une textBox.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     T_date_naissance_l.Text = CStr(dr.GetDateTime(12))
    j'ai essayé convert.tostring
    mais ça ne marche pas:
    Specified cast is not valid.

    quel cast à utiliser donc?


    merci bien de m'aider

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    La doc est plutôt bien fournie à ce sujet
    http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET et Java (Android)
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET et Java (Android)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 36
    Points
    36
    Par défaut
    Salut

    J'aurai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Not dr.IsDBNull(12) Then
           T_date_naissance_l.Text =  dr.GetDateTime(12).ToShortDateString
    else
           T_date_naissance_l.Clear
    End If

  4. #4
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    je vous remercie


    à tleblanc:
    visual studio n'a pas accepté ce code:

    Specified cast is not valid
    qu'est ce que je peux faire?

    à Nathanael Marchand:

    j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     T_date_naissance_l.Text = dr.GetDateTime(12).ToString("d")
    mais on m'affiche une erreur:

    Specified cast is not valid.

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    C'est surement que ta colonne 12 n'est pas une date

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET et Java (Android)
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET et Java (Android)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 36
    Points
    36
    Par défaut
    C'est clair ce n'est pas le format date c'est peut-être un champ de type texte dans lequel il y a une date? ou encore que l'index 12 n'est pas le bon.

    Si tu fais ca tu obtiens quoi dans ton label ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Not dr.IsDBNull(12) Then
           T_date_naissance_l.Text =  dr.GetValue(12).ToString
    else
           T_date_naissance_l.Clear
    End If

  7. #7
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    je vous remercie

    j'ai essayé votre code tleblanc:
    et j'obtient un zéro dans le textBox

  8. #8
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut

    vous avez raison
    j'aurais du faire 13 plutôt que 12, merci infiniment!

    mais comment je pourrais masquer le temps?

    svp,pourriez vous m'aider pour convertir:
    un jour sélectionné
    un mois sélectionné
    une année sélectionnée
    les assembler pour les insérer dans une un champ de type datetime sur sql server.

    j'ai essayé ceci;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     date_niv0 = CDate(CMB_j_niveau1.SelectedItem & "/" & CMB_m_niveau1.SelectedItem & "/" & CMB_a_niveau1.SelectedItem)
    avec date_niv0 de type date

    j'ai méme essayé cela;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     d0 = CMB_j_niveau1.SelectedItem & "/" & CMB_m_niveau1.SelectedItem & "/" & CMB_a_niveau1.SelectedItem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     date_niv0 = DateTime.Parse(d0, Globalization.CultureInfo.CreateSpecificCulture("en-CA"))
    mais toujours erreur!

    qu'est ce que vous en dites?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET et Java (Android)
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET et Java (Android)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 36
    Points
    36
    Par défaut
    Salut,

    Le cast(Convertion) d'une chaine de caractères (String) en Date n'est pas une bonne technique : trop de risque d'erreur en fonction justement de la culure(du Pays) de l'ordinateur)

    Il vaut mieux créer un objet date tu auras moin de risque d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
            Dim date_niv0 As Date
            Dim date_niv0 As Date
            Dim Mois As Integer
            Dim Jour As Integer
            Dim Annee As Integer
     
            'Recuperation de tes valeur
            'Il faudrait que tu ajoutes un controle avant pour savoir si toutes les valeur sont bien selectionnées.
            'Et si celles-ci sont correctes : ex que l'utilisateur n'entre pas 31/02/2011
            Jour = CInt(CMB_j_niveau1.SelectedItem)
            Mois = CInt(CMB_m_niveau1.SelectedItem)
            Annee = CInt(CMB_a_niveau1.SelectedItem)
     
            date_niv0 = New Date(Annee, Mois, Jour)
    Mais je t'invite à faire un tour dans la FAQ VB.NET et lire l'excellent cours de Philippe Lasserre. tu y trouveras presque les réponse à toutes tes question et de très bon exemple pour les débutant.

  10. #10
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    merci tleblanc

    j'ai essayé le code
    pour le mois on sélectionne un mois, donc impossible de faire CInt
    on m'a signalé une erreur

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET et Java (Android)
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET et Java (Android)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 36
    Points
    36
    Par défaut
    Salut,

    Si les items de ta combobox pour les mois sont des chaines de caractères alors essayes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mois = CMB_m_niveau1.SelectedIndex
    Qui retourne la position à laquelle se trouve la valeure sélectionnée dans la ComboBox (-1 si aucune de selectionnée).

    ATTENTION Débute à 0 donc n'oublie pas de faire +1 ton SelectedIndex pour le mois.

  12. #12
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    Bonjour

    n'oublie pas de faire +1 ton SelectedIndex pour le mois.
    en quoi cava nous aider?

    voici un essai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If (jour_anc_echelle.SelectedIndex <> -1 And  mois_anc_echelle.SelectedIndex <> -1 And
               annee_anc_echelle.SelectedIndex <> -1 ) Then
    
                j_a_echelle = CInt(jour_anc_echelle.SelectedItem)
                m_a_echelle = (mois_anc_echelle.SelectedIndex)   (+1 ?)
                a_a_echelle = CInt(annee_anc_echelle.SelectedItem)
                date_anc_echelle = New Date(a_a_echelle, m_a_echelle, a_a_echelle)
    je n'ai pas compris ce message d'erreur:
    Year, Month, and Day parameters describe an un-representable DateTime.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET et Java (Android)
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET et Java (Android)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Points : 36
    Points
    36
    Par défaut
    Salut

    Ce que cela veut dire c'est que avec les valeurs que tu donnes pour new date les valeurs ne sont pas valide ! Tu fait un truc du genre 31/02/2011 ou 0/1/2011 ou un autre truc impossible a modéliser en date. Enfin bref maintenant fait le boulot de développeur : lit la doc, debug, vérifie tes valeurs. tu as toutes les billes maintenant prend un peu d'autonomie...

    Bon courage.

  14. #14
    Membre du Club
    Femme Profil pro
    futur développeur
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : futur développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 48
    Points
    48
    Par défaut
    je vous remercie beaucoup tleblanc

    je vous prie de m'aider


    j'ai fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    If (jour_anc_echelle.SelectedIndex <> -1 And mois_anc_echelle.SelectedIndex <> -1 And annee_anc_echelle.SelectedIndex <> -1) Then
     
                j_a_echelle = CInt(jour_anc_echelle.SelectedItem)
                m_a_echelle = (mois_anc_echelle.SelectedIndex)
                a_a_echelle = CInt(annee_anc_echelle.SelectedItem)
                date_anc_echelle = New Date(a_a_echelle, m_a_echelle, j_a_echelle)
                'Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
     
            End If
     
            If (jour_anc_echelon.SelectedIndex <> -1 And mois_anc_echelon.SelectedIndex <> -1 And annee_anc_echelon.SelectedIndex <> -1) Then
                j_a_echelon = CInt(jour_anc_echelon.SelectedItem)
                m_a_echelon = (mois_anc_echelon.SelectedIndex)
                a_a_echelon = CInt(annee_anc_echelon.SelectedItem)
                date_anc_echelon = New Date(a_a_echelon, m_a_echelon, j_a_echelon)
            End If
     
            If (jour_nais.SelectedIndex <> -1 And mois_nais.SelectedIndex <> -1 And annee_nais.SelectedIndex <> -1) Then
                j_nais = CInt(jour_nais.SelectedItem)
                m_nais = (mois_nais.SelectedIndex)
                a_nais = CInt(annee_nais.SelectedItem)
                date_nais = New Date(a_nais, m_nais, j_nais)
     
            End If
     
            If (jour_recrut.SelectedIndex <> -1 And mois_recrut.SelectedIndex <> -1 And annee_recrut.SelectedIndex <> -1) Then
                j_rec = CInt(jour_recrut.SelectedItem)
                m_rec = (mois_recrut.SelectedIndex)
                a_rec = CInt(annee_recrut.SelectedItem)
                date_recrut = New Date(a_rec, m_rec, j_rec)
     
            End If
    et voici l'erreur
    SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
    si je ne réussis pas cela, toutes les autres opérations de modification, suppression, recherche et d'affichage seront bloquées.


    merci pour votre compréhension!

Discussions similaires

  1. Convertir une Date en String
    Par yoaugoulo dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 09/12/2009, 12h07
  2. [VB6] convertire une date en string
    Par acrenn dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/05/2006, 17h30
  3. Convertir une date en string
    Par hugo69 dans le forum Access
    Réponses: 6
    Dernier message: 28/04/2006, 17h40
  4. Réponses: 14
    Dernier message: 29/06/2005, 10h22

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