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

Accès aux données Discussion :

[SQL 2005][ASP.net 2]Insertion de date dans une table


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 174
    Points : 62
    Points
    62
    Par défaut [SQL 2005][ASP.net 2]Insertion de date dans une table
    Bonjour,

    J'ai un formulaire où l'utilisateur doit saisir une date qui sera enregistré dans une table. jusque là rien de bien compliquer. Mon problème vient du format date utilisé par SQL Server. Dans mon instruction Insert je ne sais pas comment saisir la date (31/10/2006 ou 2008/10/31 ? ). De plus, après plusieurs essais, sql server rajoute même l'heure (00:00:00 si rien n'est précisé).

    Je n'ai pas trouvé comment empêcher cette gestion de l'heure. Ne peut-on pas gérer les dates comme dans mysql? de plus, comment saisir la date (quel format?).

    Merci pour vos eventuelles précisions.

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    A toi de choisir si tu veux que l"utilisateur entre une date sous le format DD/MM/YYYY ou MM/DD/YYYY.
    Cependant, il faut faire attention au fait que si tu héberges ton site sur un serveur américain, la culture par défaut te forcera à entrer la date sous le format américain évidemment. Soit tu suis cette logique pour les utilisateurs, soit tu forces la culture par programme.

    Ensuite, il te faut faire un casting du string entré par l'utilisateur afin d'obtenir un objet DateTime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime myDt = Convert.ToDateTime("28/12/2006");
    Une fois que tu as ta date dans ton objet DateTime, il ne te reste plus qu'à laisser faire Ado.NET pour convernir ton objet DateTime en type DateTime sous SqlServer. Pour celà il faut utiliser les paramètres des objets commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SqlCommand myCommand = new SqlCommand("INSERT INTO maTable (ChampsDate) VALUES(@maDate)");
    myCommand.Parameters.Add(new SqlParameter("@maDate", myDt));
    Pour ce qui est de la lecture, tu n'auras qu'à faire un Convert.ToDateTime du String que tu auras reçu représentant ta date dans sql server.

    En ce qui concerne ta question de l'heure, tu peux faire abstraction du fait que Sql Server enregistre l'heure même si tu l'as pas spécifiée car l'objet DateTime dont je t'ai parlé possède des méthodes te renvoyant la date sous format date (ToShortString() - DD/MM/YYYY), heure (ToShortTime() - HH:MM:SS), et bien d'autre encore...
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 174
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par Goldar
    A toi de choisir si tu veux que l"utilisateur entre une date sous le format DD/MM/YYYY ou MM/DD/YYYY.
    Cependant, il faut faire attention au fait que si tu héberges ton site sur un serveur américain, la culture par défaut te forcera à entrer la date sous le format américain évidemment. Soit tu suis cette logique pour les utilisateurs, soit tu forces la culture par programme.

    Ensuite, il te faut faire un casting du string entré par l'utilisateur afin d'obtenir un objet DateTime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime myDt = Convert.ToDateTime("28/12/2006");
    Une fois que tu as ta date dans ton objet DateTime, il ne te reste plus qu'à laisser faire Ado.NET pour convernir ton objet DateTime en type DateTime sous SqlServer. Pour celà il faut utiliser les paramètres des objets commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SqlCommand myCommand = new SqlCommand("INSERT INTO maTable (ChampsDate) VALUES(@maDate)");
    myCommand.Parameters.Add(new SqlParameter("@maDate", myDt));
    Pour ce qui est de la lecture, tu n'auras qu'à faire un Convert.ToDateTime du String que tu auras reçu représentant ta date dans sql server.

    En ce qui concerne ta question de l'heure, tu peux faire abstraction du fait que Sql Server enregistre l'heure même si tu l'as pas spécifiée car l'objet DateTime dont je t'ai parlé possède des méthodes te renvoyant la date sous format date (ToShortString() - DD/MM/YYYY), heure (ToShortTime() - HH:MM:SS), et bien d'autre encore...

    Ok, merci.

    Je vais essayer ce que tu m'a dis de suite

Discussions similaires

  1. [Débutant] [VB.NET] envoi de la date dans une requete SQL via ADO.NET
    Par yassine-art dans le forum ADO.NET
    Réponses: 2
    Dernier message: 28/04/2012, 13h08
  2. vb.net et insertion de donnée dans une base sql plus
    Par anissabosch dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/10/2007, 19h39
  3. probleme d'insertion de date dans une table
    Par manplum dans le forum C++Builder
    Réponses: 3
    Dernier message: 23/04/2007, 18h14
  4. Insertion d'une date dans une table avec vba
    Par skeut dans le forum Access
    Réponses: 2
    Dernier message: 21/02/2006, 08h54
  5. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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