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 :

problème de validation de date [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
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut problème de validation de date
    bonsoir
    je dois dire que je commence à m'en sortir en .net mais je rencontre encore quelque petits bobos.
    je n'arrive pas à valider un enregistrement contenant un champ "datecontrat" de type ''date''.
    voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Insert Into contrat (numcontrat,datecontrat) values ('" & numero_contrat.Text & "','" & date_contrat.Value & "')"

    il apparaît le message d'erreur suivant:

    Conversion failed when converting date and/or time from character string.
    quand je change l'instruction SQL en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Insert Into contrat (numcontrat,datecontrat) values ('" & numero_contrat.Text & "',#" & date_contrat.Value & "#)"
    il me signale une erreur dans le voisinage de "#"

    je sais que ce problème doit avoir été posé et résolu mais mes recherches sont vaines.
    merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il ne faut pas construire la requête par concaténation, ça pose toutes sortes de problèmes :
    - sécurité : ça ouvre la porte à l'injection SQL. Par exemple si je saisis dans numero_contrat le texte 0', null); drop database; -- (ou un truc comme ça), je supprime la base de données...
    - format des données : les formats de date sont différents selon les cultures, idem pour les formats de nombres. Si tu essaies d'insérer directement la date comme une chaine, tu vas tout le temps avoir des problèmes parce que le format ne correspondra pas à celui attendu par la BDD
    - performances : le texte de la requête est différent à chaque fois selon les valeurs insérées, donc la BDD ne peut pas optimiser en mettant en cache ces requêtes

    La solution est d'utiliser des requêtes paramétrées, comme expliqué ici
    (c'est du C#, mais le principe se transpose directement en VB.NET)

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut
    merci tomlev
    mais ce que je voudrais maintenant, c'est d'enregistrer une valeur de type "date" dans ma table. toutes les combinaisons ne marchent pas. ou alors, je devrais changer le type "date" de mon champ en "chaine de caractères" dans ma base de données.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par djelloharmel Voir le message
    mais ce que je voudrais maintenant, c'est d'enregistrer une valeur de type "date" dans ma table
    Bah oui, j'avais bien compris... et je t'ai dit comment faire : utilise une requête paramétrée

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut
    c'est réussi. il fallait remplacer simplement ".Value" par ".Text" selon le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Insert Into contrat (numcontrat,datecontrat) values ('" & numero_contrat.Text & "','" & date_contrat.Text & "')"

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

Discussions similaires

  1. Validation de date
    Par supersonicblonde dans le forum CodeIgniter
    Réponses: 0
    Dernier message: 11/04/2011, 17h37
  2. problème de validation de date
    Par anayathefirst dans le forum Struts 1
    Réponses: 6
    Dernier message: 05/02/2007, 02h09
  3. [FLASH MX] Problème avec l'objet Date
    Par n_tony dans le forum Flash
    Réponses: 13
    Dernier message: 22/03/2005, 13h44
  4. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43
  5. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19

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