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 :

contrôler la validité d'une date sous SQlite [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut contrôler la validité d'une date sous SQlite
    Bonjour,

    Ce sujet aurait aussi pu se trouver dans le forum sur SQLite mais ça se discute.

    J'ai un projet VB.NET fondé sur une bdd SQLite.
    Dans des champs d'un form, j'affiche des données issues de cette BdD, mais aussi je renseigne des valeurs que j'injecte dans la BdD.
    Or l'un de ces champs est supposé contenir une date au format jj/mm/aaaa.

    SQLite ne connaît pas les dates. Les champs dates sont stockées en table sous le type text.

    D'ailleurs si je pars d'une table contenant des données, un test sur le valuetype de la date affichée dans le champ date confirme qu'il s'agit bien d'un string.

    Maintenant, si l'utilisateur remplit un formulaire pour créer un enregistrement dans la BdD dans le champ date, il va saisir une date, ou n'importe quoi.

    Il est de bon ton de vérifier par le code la validité des valeurs saisies dans un champ donné avant de l'injecter dans la BdD.

    Comment peut-on contrôler en VB.NET qu'une date saisie est bien une date, et qui plus est, au format voulu ?

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir noftal,

    Utilises TryParse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If DateTime.TryParseExact("30/09/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, New DateTime) Then
                MsgBox("Saisie correcte")
            End If

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    ça ne s'invente pas !

    Il faut faire une truc spécial pour que l'IDE reconnaisse les 2 items suivants ?
    CultureInfo.InvariantCulture
    DateTimeStyles.None

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par noftal Voir le message
    ça ne s'invente pas !

    Il faut faire une truc spécial pour que l'IDE reconnaisse les 2 items suivants ?
    CultureInfo.InvariantCulture
    DateTimeStyles.None
    Tu importes l'espace de noms suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports System.Globalization

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Quel bêta je suis.
    Il suffisait de lire la proposition d'aide de l'IDE sur la correction de cette expression.

    Ca marche nickel. Un grand merci !

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Précision utile : l'instruction provoque une erreur si le premier paramètre est null (en clair, si le champ que l'on contrôle est vide).
    ça se corrige aisément en rajoutant une condition ou à l'aide d'un try/catch

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

Discussions similaires

  1. Contrôler la validité d'une date dans le SELECT
    Par kyra2778 dans le forum SQL
    Réponses: 12
    Dernier message: 06/12/2011, 17h40
  2. [Dates] date() validité d'une date
    Par BigBarbare dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2006, 16h45
  3. Réponses: 5
    Dernier message: 08/03/2006, 15h22
  4. [JDBC] Requête avec une date sous la forme dd/MM/yyyy
    Par sylviefrfr dans le forum JDBC
    Réponses: 6
    Dernier message: 12/11/2005, 09h35
  5. Réponses: 15
    Dernier message: 03/11/2005, 15h43

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