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

C# Discussion :

[C#]Requete SQL Datetime


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut [C#]Requete Paramètrée ne reconnait pas les paramètres.
    Voila, j'ai une bdd donc le premier champ de la table est sous format Datetime.
    Je veux remplir ce champ depuis C#.

    Voici le code

    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
     
    public int DBBInsertMain(DateTime Date, double Bid, double Ask, string NomEme)
            {
                if (db.getDbUp())
                {
                    string strQuery = "INSERT INTO ma09 (DateRecep,Bid,Ask,NomEme) VALUES ( @DateRecep ," + Bid + "," + Ask + ",'" + NomEme + "');";
                    MySqlCommand oCommand = new MySqlCommand();
                    oCommand.CommandText = strQuery;
                    oCommand.Connection = db.getConnectionRessource();
                    oCommand.Parameters.Add("@DateRecep",MySqlDbType.DateTime);
                    oCommand.Parameters["@DateRecep"].Value = Date;
                    return oCommand.ExecuteNonQuery();
                }
                else
                {
                    Console.WriteLine("Base non connectée.");
                    return 0;
                }
            }
    Quand je lis la base de donné les données double, et le texte rentre bien, mais pour la date j'ai <NA>, c'est donc qu'il n'arrive pas à lire le paramètre que j'ai créé. QQ'un à une idée ?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Je pense avoir trouvé d'ou vient le problème, mais je vois pas comment le resoudre.

    En fait le format de mon paramètres est dd/mm/yyyy hh:mm:ss, et j'ai l'impression que la base de données ne reconnait que les données sous la forme yyyy-mm-dd hh:mm:ss. Mais je vois pas comment convertir d'un format à l'autre

  3. #3
    Membre Expert Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Par défaut
    un objet DateTime a des fonctions pour changer son format !
    ToFileTime, ToFileTimeUTC, ToLocalTime, ...

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    J'ai pas la réponse à ta question, mais ta requête risque de pas marcher : en effet,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO ma09 (DateRecep,Bid,Ask,NomEme) VALUES ( @DateRecep ," + Bid + "," + Ask + ",'" + NomEme + "');"
    est équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO ma09 (DateRecep,Bid,Ask,NomEme) VALUES ( @DateRecep ," + Bid.ToString() + "," + Ask.ToString() + ",'" + NomEme + "');"
    et double.ToString() renvoie une chaîne dépendant des regional settings de la machine. Typiquement, en France, ça renvoie "1,2" pour le double 1.2 .

    Tu as donc intérêt à utiliser des paramètres sql pour chaque variable, plutôt que mélanger comme tu l'as fait là

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Citation Envoyé par Guulh Voir le message
    J'ai pas la réponse à ta question, mais ta requête risque de pas marcher : en effet,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO ma09 (DateRecep,Bid,Ask,NomEme) VALUES ( @DateRecep ," + Bid + "," + Ask + ",'" + NomEme + "');"
    est équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO ma09 (DateRecep,Bid,Ask,NomEme) VALUES ( @DateRecep ," + Bid.ToString() + "," + Ask.ToString() + ",'" + NomEme + "');"
    et double.ToString() renvoie une chaîne dépendant des regional settings de la machine. Typiquement, en France, ça renvoie "1,2" pour le double 1.2 .

    Tu as donc intérêt à utiliser des paramètres sql pour chaque variable, plutôt que mélanger comme tu l'as fait là
    Ba quand je fais le requette avec uniquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO ma09 (DateRecep) VALUES ( @DateRecep )";
    Ca me fait le meme problème. Je n'est pas de problèmes pour les chiffres, et la chaine de caractère. Je vais inserer des paramètres pour améliorer le codes, mais le problème ne vient pas de là.

  6. #6
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Guulh ne dit pas que ton problème vient de là, il dit que ta façon de faire risque d'en poser, c'est différent

Discussions similaires

  1. Requete SQL, les DateTime et les clauses WHERE
    Par Woufeigh dans le forum Développement
    Réponses: 6
    Dernier message: 05/09/2012, 11h00
  2. datetime null dans requete sql parametrée
    Par olibara dans le forum C#
    Réponses: 7
    Dernier message: 15/06/2009, 18h58
  3. Requete SQL - zero non significatif datetime
    Par koktel_dfr dans le forum Développement
    Réponses: 3
    Dernier message: 25/11/2008, 11h37
  4. Transformation datetime pour requete sql
    Par olibara dans le forum C#
    Réponses: 6
    Dernier message: 24/08/2008, 11h21
  5. Réponses: 1
    Dernier message: 14/02/2007, 17h08

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