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

ASP.NET Discussion :

Format de date de données prises dans une base


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Par défaut Format de date de données prises dans une base
    Bonjour à tous ,



    j'extrait des données à partir d'une base Oracle de la façon suivante :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    OracleConnection oConnexion = new OracleConnection();
     
    oConnexion.ConnectionString = "...";
     
    oConnexion.Open();
     
    OracleCommand cmd = new OracleCommand(reqOF);
     
    cmd.Connection = oConnexion;
     
    OracleDataReader reader = cmd.ExecuteReader();
    Et ensuite je les stock dans un tableau. J'ai un petit problème concernant mes colonnes ayant des types "date". Dans mon tableau elle sont affiché sous la forme "24/02/2012 00:00:00" alors que j'aimerais seulement avoir "24/02/2012".
    Savez vous si c'est faisable rapidement en C# ou si je dois faire du javascript/jQuery pour essayer de changer ça?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    En C# si tu ne veux que la date, tu peux utiliser DateTime.ToShortDateString.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé

    Homme Profil pro
    Informatique en tant qu'autodidacte passionné
    Inscrit en
    Mars 2009
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informatique en tant qu'autodidacte passionné
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 189
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par paladice Voir le message
    Bonjour à tous ,



    j'extrait des données à partir d'une base Oracle de la façon suivante :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    OracleConnection oConnexion = new OracleConnection();
     
    oConnexion.ConnectionString = "...";
     
    oConnexion.Open();
     
    OracleCommand cmd = new OracleCommand(reqOF);
     
    cmd.Connection = oConnexion;
     
    OracleDataReader reader = cmd.ExecuteReader();
    Et ensuite je les stock dans un tableau. J'ai un petit problème concernant mes colonnes ayant des types "date". Dans mon tableau elle sont affiché sous la forme "24/02/2012 00:00:00" alors que j'aimerais seulement avoir "24/02/2012".
    Savez vous si c'est faisable rapidement en C# ou si je dois faire du javascript/jQuery pour essayer de changer ça?

    Merci d'avance
    Bonsoir,

    Si la date est destinée à être affichée dans une page aspx et dans un BoundField, il faut positionner :
    La propriété HtmlEncode à False
    La propriété DataFormatString à {0:d}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:BoundField DataField="Date" DataFormatString="{0:d}" 
                    HeaderText="Date" HtmlEncode="False" SortExpression="Date" />
    en utilisant la syntaxe :
    DateTime.Now.ToShortDateString ,ta date sera affichée toujours comme ceci :06/05/2013 00:00:00, ( 00:00:00) quelle que soit l'heure et cela même si les propriétés du BounField sont fixées correctement.

    Ceci est une expérience de SqlServer (je ne connais pas Oracle)

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Par défaut
    Merci à vous pour vos réponses. J'ai essayé et malheureusement pour la première ça ne fonctionne pas j'ai une erreur qui me dit que le format de mon string ne peut pas être converti.
    Pour la seconde je n'ai pas essayé car les données sont destinées à être inséré dans un <asp:Table> donc pas de <boundfield> mais merci quand même je l'avais pas précisé
    J'ai donc simplement coupé ma chaîne avec substring même si c'est pas très propre :/
    Merci encore

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Ca veut dire que tu récupères tes dates sous forme de string ? Tu as pourtant indiqué avoir des colonnes de type "date"...

    Si dans Oracle tu as des dates, il vaut mieux les récupérer sous forme de DateTime, pour pouvoir les manipuler proprement. La méthode du substring est loin d'être optimale.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Par défaut
    En fait, je ne sais pas exactement de quel type sont mes objets.
    Dans la base, cette colonne est de type Date. En HTML, il n'y a pas de type mais la colonne du tableau (qui a la base est un <asp:Table>) ne doit contenir que des dates. Dont c'est plus en C# que je bloque car je n'arrive pas à caster reader.GetValue(0) en date (reader étant un objet OracleDataReader).

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par paladice Voir le message
    c'est plus en C# que je bloque car je n'arrive pas à caster "reader.GetValue(0)" en date (reader étant un objet OracleDataReader).
    Regarde du côté d'OracleDataReader.GetDateTime pour récupérer directement un objet de type DateTime.

    Citation Envoyé par paladice Voir le message
    En HTML, il n'y a pas de type mais la colonne du tableau (qui a la base est un <asp:Table>) ne doit contenir que des dates.
    Là, comme tu auras un objet de type DateTime, tu pourras utiliser la méthode ToShortDateString sur la variable qui contient la date à afficher.

    D'une manière générale, tout ce qui est "cosmétique" doit être réalisé le plus tard possible (dans la partie du code la plus proche possible de l'affichage). Cela permet de rester cohérent dans le code une date doit être de type DateTime dans le code, mais lors de l'affichage, et uniquement lors de l'affichage, on peut la transformer comme on le souhaite (n'afficher que la date, en bleu par exemple).

    Bien sûr, il y a des cas spécifiques, mais ils sont heureusement rares
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

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

Discussions similaires

  1. Date sous VB6.0 dans une base de donnée .mdb
    Par Bobshit dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2009, 03h13
  2. importer des données XML dans une base Oracle 9
    Par lanfeustdetroll dans le forum JDBC
    Réponses: 3
    Dernier message: 19/07/2007, 00h09
  3. [VBA-EXCEL] format de date lors d'écriture dans une cellule
    Par ustilago dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2007, 17h44
  4. Réponses: 21
    Dernier message: 05/06/2006, 10h49
  5. Insérer des données Excel dans une base Access ?
    Par MaTHieU_ dans le forum Access
    Réponses: 3
    Dernier message: 22/06/2005, 15h11

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