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 :

Rafraichir un datagridview


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Rafraichir un datagridview
    J'aimerai rafraichir le contenu d'un datagridview. J'ai un bouton "recherche " qui me permet d'afficher des données dans mon datagridview via une base de données access. le problème est que lorsque je re-clique une seconde fois pour effectuer une seconde recherche, les données dans mon datagridview ne s'affiche pas correctement(cellule décalé). Ma question est donc, comment rafraichir mon datagridview ( dataset) ?

    Merci pour vos réponses.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    La question est : comment bindes-tu tes données ? A quoi ressemble ton dataset au second clic ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Donc voila ce qui se passe pour mon formulaire. je me connecte au chargement de la page, et quand je clique sur "rechercher" j'exécute la requête souhaitée ... Voila mon code :

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     
            TextBox4.Hide()
            Label28.Hide()
     
            'On établie la connexion avec la base de Données
            Module1.connexion("Mabase1.mdb")
     
     
            'on intègres les colonnes au datagridview1
            DataGachees.Columns.Add(c1, c1) ' colonne Date 
            DataGachees.Columns.Add(c2, c2) ' colonne Heure
            DataGachees.Columns.Add(c3, c3) ' colonne Poste
            DataGachees.Columns.Add(c4, c4) ' colonne Formule
            DataGachees.Columns.Add(c5, c5) ' colonne Volume
            DataGachees.Columns.Add(c6, c6) ' colonne Numéro de fabrication
            DataGachees.Columns.Add(c7, c7) ' colonne gachées
     
     
            DataGachees.Columns(c5).Visible = False
     
            For cool As Integer = 1 To 160
     
                DataGachees.Columns.Add(cool, cool)
            Next
     
            For cool As Integer = 1 To 160
                Dim iidi As String = "" & cool
                DataGachees.Columns(iidi).Visible = False
            Next
     
            If nombre_centrale > 1 Then
                ' Nom initial pour les combobox d'affichages
                CB_centrale.Text = "Toutes"
                CB_centrale.Items.Add("Toutes")
            Else
                CB_centrale.Text = "1"
            End If
     
            'On initialise les combobox Centrale, Formule, Poste
            a.Incrementation_Combobox(nombre_centrale, CB_centrale)
            a.Incrementation_Combobox(nombre_formule, CB_Formule)
            a.Incrementation_Combobox(nombre_poste, CB_Poste)
            CB_Poste.Text = "Tous"
            CB_Formule.Text = "Toutes"
     
            'on gere les checkbox.
            CheckFab.Checked = True
            CheckDate.Checked = False
     
            a.bloquer_trie(DataGachees)
     
        End Sub
     
     Private Sub rechercher_click(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles rechercher.click
     
    ds.Reset() ' on vide le dataset
    'ds.clear() 
     
      cmd = New OleDbCommand("select * from Centrale" & CB_centrale.Text & " where champ6 = " & num_fab.Text & "")
                                                    ' on charge la table dans le datagridview
                                                    chargement_Base("Centrale" & CB_centrale.Text, cmd, DataGachees)
     
       ' On affiche les données de la table dans le datagridview
            DataGachees.DataSource = dt
     
            DataGachees.Visible = True
    end sub 
     
     Public Sub connexion(ByVal bd As String)
            On Error GoTo erreur
            cn = New OleDbConnection
            cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; Data source=" & Application.StartupPath & "\" & bd
            'cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; Data source= C:\Users\Anthony\Desktop\Conduite_Projet\Gachées\Gachées\bin\Debug\" & bd
            cn.Open()
            Exit Sub
    erreur:
            MsgBox(Err.Description)
     
        End Sub
     
     Public Sub chargement_Base(ByVal nom_table As String, ByVal cmd As OleDbCommand, ByVal data As DataGridView)
     
            '------------------------------------------
            cmd.Connection = cn
     
            da = New OleDbDataAdapter(cmd)
            da.Fill(ds, nom_table)
            dt = New DataTable
            dt = ds.Tables(nom_table)
     
            Dim ii As Integer ' variable d'incrémentation
            Dim bb As DataColumn ' variable de type Colonne
     
            ' On attribut une colonne du datagridview à une colonne de la base de données
            For Each bb In ds.Tables(nom_table).Columns
     
                data.Columns(ii).DataPropertyName = bb.ColumnName
                ii = ii + 1
            Next
     
     
        End Sub
    Pour information, comme tu as pu le constaté, je crée des colonnes que j'associe aprés à ma table ! et bien j'ai fait un test en supprimant les colonnes que j'avais créer pour qu'elle soit assimiler, et la quand je clique une seconde fois sur "rechercher" je n'est pas le probleme que j'avais.. mais j'aimerai savoir pourquoi ?!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Dejà, testes avec un AutoGenerateColumns à False pour commencer !
    Puis, ensuite vérifies bien tes noms de colonnes (celle que tu crées toi) avec celles récupérées de la BDD. Il faut que ce soit les mêmes et quand je dis les noms, je parle du datapropertyname, chose qui ne me semble pas bon dans ton code

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    re,

    J'ai effectivement tester un AutoGenerateColumns à False, et c'est déja mieux! Les cellules ne sont pas décalées...

    Pour ce qui est du nom de colonnes, j'ai ajouter moi même des colonne au datagridview car le nom des colonnes de ma tables ne correpsonde pas au nom que je souhaite afficher sur mon datagridview. c'est pour cela que j'utilise ce code pour faire correspondre ma premiere colonne de mon datagridview à ma premiere colonne de ma tables....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       For Each bb In ds.Tables(nom_table).Columns
     
                data.Columns(ii).DataPropertyName = bb.ColumnName
                ii = ii + 1
            Next
    et donc, sa engendre des erreur de le manipuler sous un nom different ?

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

Discussions similaires

  1. Rafraichir un datagridview (ou MAJ)
    Par bubu434343 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/12/2009, 00h28
  2. rafraichir un datagridview
    Par turican2 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/09/2009, 17h52
  3. Rafraichir un DataGridView sur un autre module
    Par lionel256 dans le forum VB.NET
    Réponses: 3
    Dernier message: 06/04/2008, 12h12
  4. Rafraichir un Datagridview
    Par nico71 dans le forum Framework .NET
    Réponses: 1
    Dernier message: 06/11/2007, 08h05
  5. Rafraichir un DataGridView selon valeur tapée
    Par Igmar dans le forum VB.NET
    Réponses: 13
    Dernier message: 20/07/2007, 15h48

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