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 :

Conversion texte to date?


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    développeur VB
    Inscrit en
    Avril 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : développeur VB

    Informations forums :
    Inscription : Avril 2011
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Conversion texte to date?
    Bonjour!

    J'ai une erreur "Types de données incompatible dans l'expression du critère)

    voici ma requette:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReqSql = "Insert Into TPersonnels (CIN, NomPers, PreNomPers, DateNaisPers) Values ('" & Val(TXTCIN.Text) & "','" & TXTNomPers.Text & "','" & TXTPreNomPers.Text & "','" & TXTPerePers.Text & "','" & TXTDateNaisPers.Text & "')"
    CIN type Numerique ------------------- Val(TXTCIN.Text) Ok
    NomPers, PreNomPers Type Texte ------ TXTNomPers.Text Ok
    DateNaisPers Type Date---------------- ????????

    Erreur dans la conversion du (TXTDateNaisPers.Text) du texte en date pour l'ajout d'un nouveau enregistrement.

    Je croit que c'est du biscuit pour des Pros comme vous.

    Merci tous de même.

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Problème de format au niveau de ta date probablement.

    Ci-joint un petit exemple pour une conversion d'une string vers une date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            Dim d As Date
            Dim sDate As String = "02/12/2012"
     
            If Not Date.TryParse(sDate, d) Then
                MessageBox.Show("Date invalide")
                Exit Sub
            End If
     
            MessageBox.Show(d.ToString())
    Maintenant dans le cas de la construction d'une requête SQL, voir du coté des requêtes paramétrées, qui évite le risque des injections SQL, mais également le problème des formats comme celui-ci et améliore la vitesse d'exécution.

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Ca peut dépendre aussi de ton SGBD certains veulent #01/01/2001# d'autres '01/01/2001' suffisent etc, à toi de voir la syntaxe voulue.

    Et tu peux Ctyper ta date aussi (et la tester au passage) pour lui passer une date et non un string (si c'est que le SGBD souhaite)


    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 txtDate As String
            Dim MaDate As Date
            Dim formatCorrect As Boolean = True
     
            Try
                MaDate = CType(txtDate, Date)
            Catch
                formatCorrect = False
            End Try
     
            If formatCorrect Then
                ReqSql = "Insert Into TPersonnels (CIN, NomPers, PreNomPers, DateNaisPers) Values ('" & Val(TXTCIN.Text) & "','" & TXTNomPers.Text & "','" & TXTPreNomPers.Text & "','" & TXTPerePers.Text & "','" & MaDate & "')"
            Else
                MsgBox("Erreur sur la date")
            End If

  4. #4
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Ca peut dépendre aussi de ton SGBD certains veulent #01/01/2001# d'autres '01/01/2001' suffisent etc, à toi de voir la syntaxe voulue.
    D'ou l'utilité et la facilité des requêtes paramétrées

Discussions similaires

  1. Conversion texte en date avec SQL delphi
    Par DAEM86 dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/12/2015, 22h28
  2. Conversion texte en date
    Par mmaatt dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 03/12/2013, 10h52
  3. [AC-2007] Conversion texte en date
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 23/11/2009, 17h34
  4. conversion texte date
    Par shinta dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2008, 21h20
  5. [Dates] Conversion d'un text en date
    Par sagitarium dans le forum Langage
    Réponses: 1
    Dernier message: 07/06/2006, 19h21

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