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 :

Datetime avec les requêtes SQL


Sujet :

C#

  1. #1
    Membre habitué Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Points : 144
    Points
    144
    Par défaut Datetime avec les requêtes SQL
    Bonjour,

    Je travaille avec VS2005, C# 2.0.

    Alors voilà, je dois trouver un enregistrement dans une de mes tables selon la date du jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private DateTime _dateCourante;
    private SqlConnection con = new SqlConnection();
    private SqlCommand command = new SqlCommand();
    private SqlDataReader reader;
    _dateCourante = DateTime.Today;
    string connectstring = "Data Source=NomServeur;Initial Catalog=Database;User Id=UserID;Password=Password;";
    con.ConnectionString = connectstring;
    con.Open();
    command.CommandText = "select * from GestionTemps where usager = '" + _codeUsager + "' and datejour = " + new DateTime(_dateCourante.Year, _dateCourante.Month, _dateCourante.Day) + ")";
    command.Connection = con;
    Mais voilà cela ne fonctionne pas. Ça fait environ 1h que j'essaie avec des convert, cast etc, bref toutes ces conversions de ce monde et rien a faire!

    J'ai souvent cette erreur :

    The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
    Dans ma table, la date ressemble à ceci :
    2008-04-24 00:00:00
    Alors que datetime.today contient ceci :
    24-08-2008 00:00:00 AM

    Merci pour votre aide
    Rien n'est impossible à celui qui n'a pas à le faire
    DBA. Je travaille avec SQL-9, SQL-10

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Passe par des requêtes paramétrées, cela devrait être plus facile
    Pas de questions techniques par MP

  3. #3
    Membre habitué Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    Passe par des requêtes paramétrées, cela devrait être plus facile

    Qu'entends-tu par des requêtes paramétrées ?

    Je viens de trouver un semblant de fonctionnement, mais je ne trouve pas ça bien chic...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string mois = Right("0" + _dateCourante.Month, 2);
    string jour = Right("0" + _dateCourante.Day, 2 );
    command.CommandText = "select arrivejour, departdiner, arrivediner, departjour, datejour from GestionTemps where usager = '" + _codeUsager + "' and datejour = '" + _dateCourante.Year + "-" + mois + "-" + jour + "'";
    avec une petite fonction right

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      public static string Right(string chaine, int longueur)
            {
                string result = chaine.Substring(chaine.Length - longueur, longueur);            
                return result;
            }
    Rien n'est impossible à celui qui n'a pas à le faire
    DBA. Je travaille avec SQL-9, SQL-10

  4. #4
    Membre habitué Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Points : 144
    Points
    144
    Par défaut
    Je viens de trouver une façon plus clean de le faire en fouillant sur le web.

    http://msdn.microsoft.com/library/fr...tringtopic.asp


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Globalization;
    string date = _dateCourante.ToString("yyyy-MM-dd", DateTimeFormatInfo.InvariantInfo);
    Rien n'est impossible à celui qui n'a pas à le faire
    DBA. Je travaille avec SQL-9, SQL-10

  5. #5
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par Baquardie Voir le message
    Qu'entends-tu par des requêtes paramétrées ?
    http://webman.developpez.com/article...ameter/csharp/
    Pas de questions techniques par MP

  6. #6
    Membre habitué Avatar de Baquardie
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2003
    Messages : 267
    Points : 144
    Points
    144
    Par défaut
    Wow. C'est trop hot.

    Voici des bouts de mon 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
     
    private string _codeUsager;
    private DateTime _dateCourante;
     
    private SqlConnection con = new SqlConnection();
    private SqlCommand command = new SqlCommand();
    private SqlDataReader reader;
     
    string connectstring = "Data Source=;Initial Catalog=;User Id=;Password=;";
    con.ConnectionString = connectstring;
    con.Open();
     
    command.CommandText = "select arrivejour, departdiner, arrivediner, departjour, datejour from GestionTemps where usager = @usager and datejour = @datecourante";
    command.Parameters.Add(new SqlParameter("@usager", SqlDbType.VarChar,30));
    command.Parameters.Add(new SqlParameter("@datecourante", SqlDbType.SmallDateTime));
    command.Parameters["@usager"].Value = _codeUsager;
    command.Parameters["@datecourante"].Value = _dateCourante;            
    command.Connection = con;
    reader = command.ExecuteReader();
    Et ça fonctionne! Pas de "taponage" avec les dates wouhouou !!!

    Merci
    Rien n'est impossible à celui qui n'a pas à le faire
    DBA. Je travaille avec SQL-9, SQL-10

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/02/2015, 09h20
  2. Logger les requêtes SQL avec log4J
    Par tipso dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 01/08/2014, 22h47
  3. SQL Compact Edition & datetime avec les secondes
    Par slacky dans le forum Développement
    Réponses: 4
    Dernier message: 15/09/2011, 14h49
  4. Afficher les thumbnails avec une requête SQL Wordpress
    Par rigolman dans le forum Langage
    Réponses: 1
    Dernier message: 31/07/2011, 04h53
  5. tracer les requêtes SQL
    Par izioto dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/10/2005, 16h35

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