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 :

MAJ d'un champ Date


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut MAJ d'un champ Date
    Dans ma base de données sous SQL 2000, je cherche à mettre à jour un champ date par une ligne de programmation en C#

    En tapant
    DateTime dt = DateTime.Parse.MaChaine;

    str = "UPDATE Matable SET MonChamp = " + dt;
    MaCommandSql.CommandText = str;
    MaCommandSql.ExecuteNonQuery();

    Le programme plante car dt prend la valeur : 17/08/07 00:00:00
    Je n'arrive pas à me débarrasser de la partie Time de la Date, qui provoque le plantage.

    En tapant

    str2 = "17/08/07";
    str = "UPDATE Matable SET MonChamp = " + str2;
    MaCommandSql.CommandText = str;
    MaCommandSql.ExecuteNonQuery();

    Le programme met à jour la date mais en lui donnant la valeur "01/01/1900", ce qui laissse à penser qu'il considére ma chaine comme egale à zéro.

    C'est d'autant plus étrange que lorsque je faisais cette opération en C++, il suffisait de taper

    COleDateTime MyDate = "04/05/07";
    str = "UPDATE Matable SET MonChamp = " + MyDate;

    Cela fonctionnait trés bien.

    Alors si quelqu'un connait la syntaxe en C#, merci.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    MonChamp est de quel type dans ta base de données ? Tu as essayé de passer par les requêtes paramétrées plutôt ?

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    Dans la base de données mon champ est du type datetime
    Quand aux requetes parametrees, désolé je ne connais pas

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Ici pour les requêtes paramétrées: http://webman.developpez.com/article.../sqlparameter/

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Août 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 82
    Points : 332
    Points
    332
    Par défaut
    DU même avis que Thomas. Passer par les requêtes paramétrées.
    D'une manière générale, faire des concaténations de string pour des requêtes SQL mennent tout droit à des injections SQL --> pas bon !

    Sinon pour te débarasser de la partie "time" de ta date, tu ne peux pas faire tout simplement un dt.Date ?
    Pierre-Emmanuel Dautreppe
    .NET Architect & Evangelist
    Voir mes expériences, tutoriels, news, ... concernant .NET, XP et le TDD :
    http://www.pedautreppe.com

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut Finalement en cherchant longtemps.
    Il faut introduire dans la requete SQL
    MyString = MyChampDate + " = CAST(" + DateSaisie.Text + "00:00:00: AS datetime)";

    Effectivement apres lecture du lien, les requetes parametrées sont plus sécurisantes. merci pour l'info.

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

Discussions similaires

  1. formater un champ date dans un select
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/04/2006, 16h44
  2. Champ Date à '01/01/0001' -> Pb conversion de variant !!!
    Par AnnSo dans le forum Bases de données
    Réponses: 6
    Dernier message: 04/06/2004, 16h54
  3. récuperer année d'un champ date
    Par tomm dans le forum Bases de données
    Réponses: 11
    Dernier message: 12/05/2004, 16h24
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  5. procedure stockée champ date
    Par tripper.dim dans le forum SQL
    Réponses: 5
    Dernier message: 25/04/2003, 09h47

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