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

Windows Forms Discussion :

erreur Mysql datetime


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 25
    Par défaut erreur Mysql datetime
    Bonjour à tous

    J'ai un problème pour faire ma requête de sélection avec comme paramètre des dates sur ma base mysql via visual studio 2005 (j'utilise la dernière version de connector pour mysql afin d'accéder à la base mysql).

    Je veux faire la requête suivante :
    SELECT id_utilisateur, `date`, absence, commentaire
    FROM pointage
    WHERE (`date` > ?datedebut) OR
    (`date` < ?datefin)
    La table pointage
    id_utilisateur numérique identifiant de l'utilisateur
    date datetime date du pointage
    absence varchar type d'absence
    commentaire varchar commentaires de l'utilisateur

    Mais lorsque dans mon code, je met en paramètre datedebut et datefin avec des datetime format dotnet (dd/mm/yyyy hh:mm:ss) et que je lance ma requête , il me récupère tout sans tenir compte des dates en critères.

    Je suppose qu'il à des problèmes pour comparer les dates de .net au format dd/mm/yyyy hh:mm:ss avec celle de mysql au format yyyy-mm-dd hh:mm:ss.

    Quelqu'un à une solution à ce problème ? Est ce bien un problème de format de date ? et si oui comment passer du format dotnet au format mysql ou l'inverse ?

    Merci


    PS : Je précise que le dataset et la requête ont été créée via l'assistant de visaul studio car pour le moment je ne maitrise pas les dataset à la main.

  2. #2
    Membre éclairé Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Par défaut
    C'est pas des paramètres qu'il utilise déjà la ???

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par NeraOne
    C'est pas des paramètres qu'il utilise déjà la ???
    Oui je me suis mal exprimé, en fait quand j'ai lu
    paramètre datedebut et datefin avec des datetime format dotnet (dd/mm/yyyy hh:mm:ss)
    j'ai supposé que le paramètre était passé sous forme de chaine de caractères, je voulais dire en fait d'utiliser un paramètre SQL de type DateTime.

    Si ce n'est pas ça, il y a peut-être un paramétrage à faire côté MySQL au niveau des formats de date supportés.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 25
    Par défaut
    euh tu peux préciser ta question ?
    j'utilise des paramètres qui sont repérables avec des ? devant les variables. Si c'est ce que tu veux dire

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Comment déclares tu les paramètres SQL en C#, tu leur affectes bien un type DateTime et comme valeur un objet DateTime ?
    Peux tu poster le code que tu utilises pour exécuter la requête ?
    Merci.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 25
    Par défaut
    Je fais tout grâce à l'assistant, donc lorsque je crée ma requête via l'assistant , il me crée le methode fill. Je n'est plus quà appeller la méthode au bon moment en lui passant les paramètres. mais cela ne marche pas, il n'arrive pas à comparer les dates de .net et les dates de mysql.

    Voici le code généré :
    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
                this._commandCollection[1] = new MySql.Data.MySqlClient.MySqlCommand();
                this._commandCollection[1].Connection = this.Connection;
                this._commandCollection[1].CommandText = "SELECT     id_utilisateur, `date`, absence, commentaire\r\nFROM         pointage\r\nW" +
                    "HERE     (`date` > ?datedeb) OR\r\n                      (`date` > ?datefin)";
                this._commandCollection[1].CommandType = System.Data.CommandType.Text;
                MySql.Data.MySqlClient.MySqlParameter param = new MySql.Data.MySqlClient.MySqlParameter();
                param.ParameterName = "?datedeb";
                param.DbType = System.Data.DbType.DateTime;
                param.MySqlDbType = MySql.Data.MySqlClient.MySqlDbType.DateTime;
                param.IsNullable = true;
                param.SourceColumn = "date";
                this._commandCollection[1].Parameters.Add(param);
                param = new MySql.Data.MySqlClient.MySqlParameter();
                param.ParameterName = "?datefin";
                param.DbType = System.Data.DbType.DateTime;
                param.MySqlDbType = MySql.Data.MySqlClient.MySqlDbType.DateTime;
                param.IsNullable = true;
                param.SourceColumn = "date";
                this._commandCollection[1].Parameters.Add(param);

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par gunnar
    Je n'est plus quà appeller la méthode au bon moment en lui passant les paramètres.
    Et les paramètres que tu lui passes sont bien des objets DateTime ?
    Peux tu aussi poster le code que tu utilises pour
    appeler la méthode
    Merci.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

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

Discussions similaires

  1. Erreur MySQL (Surement due au passage a MySQL 5)
    Par Syntax-ERROR dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2006, 01h19
  2. erreur mysql Unknown column...
    Par italiasky dans le forum Requêtes
    Réponses: 9
    Dernier message: 08/02/2006, 10h26
  3. erreur mysql... probleme de requete
    Par om.rava dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/12/2005, 21h48
  4. avoir les log d'erreur mysql
    Par simoryl dans le forum Administration
    Réponses: 4
    Dernier message: 06/09/2005, 14h24

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