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

Windows Forms Discussion :

[VB.NET] champ datetime dans un datagrid


Sujet :

Windows Forms

  1. #1
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut [VB.NET] champ datetime dans un datagrid
    Bonjour,

    j'ai une prod stockée qui me genere une table avec un nombre de colonne qui peut varier

    je rempli ensuite un datagrid avec cette table grace à une autre prod stockée

    Ca marche bien à part que dans ma table j'ai des champs datetime, mais dans mon datagrid je n'ai que les dates mais pas les heures !

    Comment faire pour avoir aussi les heure ?

    Merci

    PS : quand je fais un export vers excel de mon datagrid j'ai bien les dates et les heures !
    j'suis vert !

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    si tu affectes un GridColumnStyle à cette colonne tu auras accès à une propriété Format il me semble pour choisir le Format DateTime que tu souhaites afficher
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    hé ouai mais je peut pas faire ca, je ne sais pas combien de colonnes il y aura dans mon datagrid et où les seront placées
    j'suis vert !

  4. #4
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    je vois bien un truc, après avoir rempli mon datagrid, je fais un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for each colonnes de mon datagrid
    si le nom de colonne commence par 'toto'
    mets les données en type datetime
    ca pourrais fonctionner ?

    Editer par neguib pour l'ajout des balises |code|
    j'suis vert !

  5. #5
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    ou dans le datatble plutot, parce que dans le datagrid, je sens que je pourrais le faire que pour les colonnes visible
    j'suis vert !

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    je rempli ensuite un datagrid avec cette table grace à une autre prod stockée
    Met moi le code qui définit le DataSource et le DataMember de ton DataGrid
    pour que je comprenne mieux ton processus
    Sinon sur le principe une fois la DataTable générée, il n'est pas très compliqué de recupérer le type de données de chacune de ses colonnes donc il suffit de mapper la colonne de type DateTime avec le GridColumnStyle formatable
    Ainsi juste avant d'attribuer le DataSource au DataGrid tu peux définir un TableStyle à celui-ci
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim com As New SqlClient.SqlCommand("sp_Route_Status_Requete", con)
    com.CommandType = CommandType.StoredProcedure
    Dim da As New SqlClient.SqlDataAdapter(com)
    Dim dt As New DataSet("RouteStatus")
    dt.Clear()
    da.Fill(dt, "RouteStatus")
     
    Mondatagrid.SetDataBinding(dt, "RouteStatus")
    mon datagrid pourra avoir 6 colonnes ou 15 ou 18....

    moi j'ai fais ca pour changer le type de mes colonnes (ici la deuxieme colonne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dt.Tables("RouteStatus").Columns(1).DataType = Type.GetType("System.String")
    Mias ca me dit que je peux pas quand il y a des données dans la datatable
    j'suis vert !

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Bon reprenons
    1. Tu recupère les données d'une Table dont une colonne au moins est de type DateTime
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    '...
    Private Const spRouteStatus As String = "sp_Route_Status_Requete"
    Private Const dtName As String = "RouteStatus"
    Private WithEvents dS As DataSet
    '...
     
    'quelquepart ce processus ...
       Me.InitData()
       Me.InitStyle()
       Me.Mondatagrid.SetDataBinding(Me.dS, dtName)
    '...
    Private Sub InitData()
       Dim com As SqlCommand
       Dim da As SqlDataAdapter 
       Try
          com = New SqlCommand(spRouteStatus, Me.con)
          da = New SqlDataAdapter(com)
          Me.dS = New DataSet()
          da.Fill(Me.dS, dtName)
       Catch e As Exception
          MessageBox.Show(e.Message)
       Finally
          If Not(da Is Nothing) Then da.Dispose()
          If Not(com Is Nothing) Then com.Dispose()
       End Try
    End Sub
    '...
    Private Sub InitStyle()
       Dim tS as New DataGridTableStyle()
       tS.MappingName = dtName 
       Dim dC As DataColumn
       'pour chaque colonne de la datatable
       For Each dC in Me.dS.Tables(dtName).Columns
          'créer le style de cette colonne
          Dim tbC As New DataGridTextBoxColumn()
     
          tbC.HeaderText = dC.ColumnName
          tbC.MappingName= dC.ColumnName
          'verifier si type DateTime
          If (dC.DataType = System.Type.GetType("System.DateTime")) Then
            'formatage en date et heure il me semble
             tbC.Format = "G"
          End If
          '...
          'ajouter la colonnestyle au tablestyle
          tS.GridColumnStyles.Add(tbC)
       Next
       'ajouter la tablestyle au datagrid
       Me.MonDatagrid.TableStyles.Add(tS)
    End Sub
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    je ne dirai que ca : "TROP FORT"

    Merci bien !!
    j'suis vert !

  10. #10
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par HULK
    je ne dirai que ca : "TROP FORT"
    Merci bien !!
    Ben mon chtimi, alors tu pourras le refaire et l'expliquer à d'autres donc pas si terrible non :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  11. #11
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    ouai je suis con moi je voulais CHANGER le type de donner, j'ai pas penser à simplement le recuperer et a changer le format de date
    j'suis vert !

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

Discussions similaires

  1. Format d'un champs DateTime dans DataGrid
    Par solawe dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/08/2007, 16h47
  2. [VB.NET]Champ image dans base de donnée access
    Par dankes dans le forum Windows Forms
    Réponses: 10
    Dernier message: 06/10/2005, 15h31
  3. [VB.Net] Formatage d'un champ DateTime d'un DataGrid
    Par Jerem76 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 29/07/2005, 09h44
  4. [VB.NET] Disparition scrollBar dans une DataGrid
    Par aphykite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2004, 10h29
  5. Réponses: 3
    Dernier message: 23/09/2003, 09h12

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