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 :

probleme de requete


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut probleme de requete
    Bonjour,

    j'utilise une base de donnée mysql avec mon programme vb.net et j'ai un soucis avec une requête qui affiche le nombre d'entrée compris entre 2 date et 2 heures précise, lorsque je l’exécute de cette façon pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT count(*) 
    FROM ticket 
    WHERE CAST(CONCAT(`datum`, ' ', heuro) AS DATETIME) BETWEEN '2011-11-13 08:00:00' AND '2011-11-14 08:00:00'
    Mais du moment ou j'utilise des labels pour les deux date a la place de 2011-11-13 et 2011-11-14
    ma requête m’affiche 0 donc je pense que le problème vien de la formulation car les labels sont bien renseigné et il fonctionne avec d'autre requêtes, voici mon code (surement un problème de quote) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.CommandText = "SELECT count(*) FROM ticket WHERE CAST(CONCAT(datum, ' ' ,heuro) AS DATETIME) BETWEEN '" & Label5.Text & " 08:00:00' AND '" & Label8.Text & " 08:00:00'"

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Tu mets un breakpoint et tu executes la requete dans mysql pour voir le problème

    mais le plus simple est de passer par des requetes parametrees


    ps : je suis etonné qu'on ne doive pas caster les dates mais bon jamais fais de mysql

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    En différence visible tu as 'datum' en haut et datum en bas

    Quelle est l'erreur retournée ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    justement je n'ai pas d'erreur, après cette requête je fait un .execute scalar, c'est juste pour compter le nombre d'enregistrement compris entre les deux dates et heures.
    et mon label qui affiche la valeur est à 0 donc, la requête doit mal interpréter les dates ou je sais pas !!!
    voici le code entier, (pour datum avec ou sans les ' ' ca ne change pas non plu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Label5.Text = "2011-11-13"
            Label8.Text = "2011-11-14"
            Dim cmd As New MySqlCommand("SELECT * FROM ticket", HostConn)
            cmd.CommandText = "SELECT count(*) FROM ticket WHERE CAST(CONCAT(datum, ' ' ,heuro) AS DATETIME) BETWEEN '" & Label5.Text & " 08:00:00' AND '" & Label8.Text & " 08:00:00'"
            Dim count As Integer = cmd.ExecuteScalar()
            Label7.Text = count
    mes dates dans la bdd sont au format YYYY-MM-dd
    et j'ai fait un breakpoint mais la j'ai rien en retour de la requête !!!

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    et tu as un retour quand tu l'éxecutes dans mysql?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Label5.Text = "2011-11-13"
    Label8.Text = "2011-11-14"
    Dim cmd As New MySqlCommand("SELECT * FROM ticket", HostConn)
    Dim requete as string = "SELECT count(*) FROM ticket WHERE CAST(CONCAT(datum, ' ' ,heuro) AS DATETIME) BETWEEN '" & Label5.Text & " 08:00:00' AND '" & Label8.Text & " 08:00:00'"
    cmd.CommandText = requete
    Dim count As Integer = cmd.ExecuteScalar()
    Label7.Text = count
    Met ce code,met un point d'arret sur cmd.CommandText = requete et colle ta requête dans ton SGBD voir ce qui cloche.

    Mais comme précisé au dessus, passer par une requête paramétrée résoudrait très probablement le problème, serait plus sécurisé, plus propre dans le code et plus performant.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    perso je dirai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT count(*) FROM ticket WHERE CAST(CONCAT(datum, ' ' ,heuro) AS DATETIME) BETWEEN CAST('" & Label5.Text & " 08:00:00') As DATETIME AND CAST('" & Label8.Text & " 08:00:00') AS DATETIME"

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Formidable je crois avoir trouvé, regarde ce que me donne le point d’arrêt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = "SELECT count(*) FROM ticket WHERE CAST(CONCAT(datum, ' ' ,heuro) AS DATETIME) BETWEEN ' 2011-11-22 08:00:00' AND '23/11/2011 08:00:00'"
    un probléme de caractére que la deuxiéme date des /// a la place des ---
    je vais utiliser un replace et reesayer je vous tien au jus

    en tous cas merci d'avance

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

Discussions similaires

  1. probleme de requete
    Par doudou1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/04/2004, 13h42
  2. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45
  3. PROBLEME DE REQUETE IMBRIQUEE
    Par fleuve007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/12/2003, 15h33
  4. probleme de requete
    Par LineLe dans le forum ASP
    Réponses: 8
    Dernier message: 17/09/2003, 16h47
  5. Probleme de requete
    Par misterbillyboy dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/07/2003, 08h24

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