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

VB.NET Discussion :

Datagridview colonne au format date


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Datagridview colonne au format date
    Bonjour !

    Je cherche à définir un format date pour une colonne de mon datagridview. Pour que le tri fonctionne correctement et pour que l'utilisateur ne puisse pas entrer autre chose qu'une date.

    J'importe les données à partir d'un fichier Xml que je mets dans un Dataset puis j'affiche tout ça dans un datagridview.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DataSet1.ReadXml(Application.StartupPath & "\BddStock.xml")
    DataGridView1.DataSource = DataSet1
    DataGridView1.DataMember = "Cartons"
    DataGridView1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    Mon fichier xml contient des dates et des entiers.
    J'aimerais que le format des cellules de colonnes correspondent au type date pour la première et entiers pour la seconde.

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSet1.Tables(0).Columns(0).DataType = TypeOf (Date)
    mais c'est faux et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.Columns(1).DefaultCellStyle.Format = "d"
    ne fait rien

    Pouvez vous m'aider ?

  2. #2
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Ton problème vient du passage entre le fichier xml et le dataset, pas du datagridview.

    Ce que tu peux faire, mais je pense que tu dois pouvoir récuperer directement ta date en format "date", c'est extraire le mois, l'année et le jour pour chaque date et les recoller dans une date, ainsi pour vb ils seront bien au format date.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Hum. ça me semble bien compliqué et bien long et ça ne résout pas mon problème pour l'autre colonne qui doit contenir des cellules de type entier.

  4. #4
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    A mon avis, une fois que tu récupères tes "dates" et tes "entiers" de ton fichier xml que tu mets dans ton dataset, il doivent être au format string.

    Il faudrait que tu vérifie, mais j'en mettrais ma main à couper.

    Ensuite, ben tu parcoures chaque ligne de ton dataset, et pour la valeur à chaque ligne de tes deux colonnes tu changes les valeurs, et même chose avec la date en utilisant l'opérateur adéquate genre un CDate

    Par contre c'est quoi le format de tes dates en xml ? ( / / ?)

    Regarde en pas à pas avec des points d'arrêt.

    Je te mettrais bien le code avec les méthodes, mais n'utilisant pas le dataset, car il est inutile, je ne suis pas sur des méthodes et je sais qu'elles diffèrent d'une datagridview, et n'ayant pas VS ici ...

    Voilà ce que ça donnerait pour un datagridview
    , tu peux également essayer directement d'agir sur ta datagridview.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim line As DataGridViewRow
     
            For Each line In Datagrid4.Rows
     
                line.Cells(0).Value = Int(line.Cells(0).Value) 'pour tes entiers
                line.Cells(1).Value = CDate(line.Cells(1).Value) 'pour tes dates
     
            Next line
    Sinon ben tu as la logique, cherche les méthodes.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci de t'intéresser à mon problème

    Le format de mes dates est jj/mm/yyyy dans le fichier xml

    tu dis que tu n'utilises pas le dataset. Je n'ai pas de méthode imposée pour importer mes données. Si tu as une meilleure idée pour charger et modifier un xml dans un datagridview je suis preneur

    J'ai recherché un peu du coté d'une datatable qui permettrait de définir le type des colonnes mais je n'arrive pas à l'utiliser

  6. #6
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Tu peux rester avec le dataset, c'est juste que je n'aime pas les utiliser.

    Ton seul souci, c'est que en sorti du xml après extraction tu dois avoir des string, donc tu n'as qu'à les convertir, avec le Int et le CDate, soit dans la dataset, mais je ne suis pas sur au niveau méthode (si cela est possible), soit dans la datagridview.

    Pour la date fais gaffe, il faudra tester, car je ne suis pas sur du format pour la conversion, soit mm/dd/aaaa, soit dd/mm/aaaa.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  7. #7
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    La solution pour typé une colonne d'une datatable, c'est au moment de son ajout.

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonDataset.Tables(0).columns.add("Colonne1", Datetime)
    MonDataset.Tables(0).columns.add("Colonne2", Integer)
    La seule chose que je sais pas c'est si le readxml va fonctionné si la datatable est déjà typée.

    Si il y a un problème, il faudrait lire le fichier xml autrement.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci, le code que tu m'as fourni ne fonctionnait pas Datetype n'était pas accepté (ni Date ni d'autres types d'ailleurs)
    mais j'ai créé mes colonnes directement dans l'éditeur dans mon dataset et ça marche parfaitement pour les entiers !
    mais pour les dates le format ne correspond pas
    dans mon fichier xml mes date sont au format "jj/mm/aaaa"

    je pense qu'il faut modifier le format attendu dans les colonnes mais je suis bloqué

    Edit : J'ai essayé de mettre <Date>10/11/2010 20:34:12</Date> dans mon fichier xml mais ça ne correspond toujours pas. Voici l'erreur
    Et ça ne me dit rien du tout...
    La chaîne '10/11/2010 20:34:12' n'est pas une valeur AllXsd valide.

  9. #9
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par Timtom60 Voir le message
    Merci, le code que tu m'as fourni ne fonctionnait pas Datetype n'était pas accepté (ni Date ni d'autres types d'ailleurs)
    mais j'ai créé mes colonnes directement dans l'éditeur dans mon dataset et ça marche parfaitement pour les entiers !
    mais pour les dates le format ne correspond pas
    dans mon fichier xml mes date sont au format "jj/mm/aaaa"

    je pense qu'il faut modifier le format attendu dans les colonnes mais je suis bloqué

    Edit : J'ai essayé de mettre <Date>10/11/2010 20:34:12</Date> dans mon fichier xml mais ça ne correspond toujours pas. Voici l'erreur
    Et ça ne me dit rien du tout...
    La chaîne '10/11/2010 20:34:12' n'est pas une valeur AllXsd valide.
    Tu dis: Datetype ? N'est ce pas DateTime que j'ai dis ?

    Quel est l'erreur ? Ca peut aider... Si ça se trouve il faut mettre System.DateTime. Date ne marche pas, car en effet il y a la date et l'heure.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai trouvé il fallait utiliser le bon format pour les dates dans le Xml. Le format attendu pour un DateTime est par exemple :
    2010-05-16
    ou avec l'heure 2010-05-16T00:00:00Z

    Voili voilou ! Problème résolu !

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

Discussions similaires

  1. regroupement en une colonne pour format date ?
    Par tanaka59 dans le forum Excel
    Réponses: 6
    Dernier message: 19/05/2012, 12h40
  2. [WD14] Format date dans colonne table
    Par miripesage dans le forum WinDev
    Réponses: 38
    Dernier message: 20/04/2011, 14h19
  3. Réponses: 6
    Dernier message: 20/10/2010, 01h39
  4. [XL-2003] Modifier le le format Date sur toute les lignes d'une colonne
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/08/2010, 14h00
  5. Trier une colonne de type date dans un datagridview
    Par eviolleau dans le forum VB.NET
    Réponses: 12
    Dernier message: 26/03/2010, 16h56

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