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 :

Fonctionnement datasource et datagridview [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 44
    Par défaut Fonctionnement datasource et datagridview
    Bonjour,

    Je suis toujours en train de me battre avec mon contrôle datagridview, et quelque chose m'échappe sur la liaison avec son datasource.

    A l'initialisation du datagrid, il représente bien mon objet datasource avec le bon nombre de lignes et de colonnes

    Lorsqu'une valeur du datasource change, ou que l'utilisateur change une valeur dans le datagrid, le changement est bien reflété de chaque côté.

    Par contre, lorsqu'un nouvel enregistrement arrive sur mon datasource, une nouvelle ligne du datagridview n'est pas crée automatiquement?

    J'ai tenté de le faire par addrows, mais j'ai une erreur comme quoi le contrôle est lié et on ne peut pas rajouter de ligne.

    Dans l'aide, je n'ai pas trouvé une méthode comme .update, qui permettrait de remettre à jour le datagrid suivant le datasource.

    Est ce qu'à chaque fois que mon datasource change je dois reconstruire le datagridview, ou une autre méthode plus élégante existe?

    [EDIT]
    Bon, en cherchant un peu, j'ai rajouté ces deux lignes dans mon ajout d'enregistrement:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        DataGridView.DataSource = Nothing
            DataGridViewDataSource = essai

    Je trouve ça complètement contraire à l'idée du datasource, mais ca marche.
    Si quelqu’un connait une solution plus élégante, je suis preneur.

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Qu'utilises-tu comme type d'objet pour ta source de données ?

  3. #3
    Membre Expert 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 : 41
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Par contre, lorsqu'un nouvel enregistrement arrive sur mon datasource, une nouvelle ligne du datagridview n'est pas crée automatiquement?
    Si le DGV est lié, alors il ne faut manipuler QUE le datasource.

    Il y a en effet des "problèmes" de rafraîchissent, mais ça se règle.
    Tu peux essayer de lié le datasource et le DGV par un BindingSource voir si ça fonctionne mieux.

    as tu essayé un bête DGV.Refresh() également ?

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Si le DGV est lié, alors il ne faut manipuler QUE le datasource.

    Il y a en effet des "problèmes" de rafraîchissent, mais ça se règle.
    Tu peux essayer de lié le datasource et le DGV par un BindingSource voir si ça fonctionne mieux.

    as tu essayé un bête DGV.Refresh() également ?
    C'est pour ça que je demandais son type d'objet.

    Si comme moi, il utilise de bêtes listes typées, il devra continuer à mettre nothing avant de remettre sa liste. Par contre, dans la MSDN, il est dit qu'il faut utiliser des BindingList. Là p-e que ça se met à jour tout seul... Jamais testé.

    Sinon effectivement, avec un BindingSource, ça se met à jour aussi tout seul. Mais on se paie tout ce qui va avec dont on n'a pas forcément besoin ^^.

  5. #5
    Membre Expert 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 : 41
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Mais on se paie tout ce qui va avec dont on n'a pas forcément besoin
    LA plupart du temps le binding pour affichache se limite à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.DGV.DataSource = Me.BindingSource
    Me.BindingSource.Datasource = Me.MaListedObiets
    Et ça règle pas mal de souci.

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Certes...

    Cela dit, j'avais testé il y a quelques mois et je n'aimais pas... Me souviens plus pourquoi par contre .

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

Discussions similaires

  1. [VB.NET] DataGridView et DataSource
    Par ricil78 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/12/2010, 20h07
  2. Mettre à jour DataGridView dont le DataSource est une relation.
    Par zizou2007 dans le forum Windows Forms
    Réponses: 26
    Dernier message: 24/05/2008, 20h35
  3. Réponses: 2
    Dernier message: 22/12/2006, 16h53
  4. Réponses: 4
    Dernier message: 06/10/2006, 14h19
  5. Réponses: 8
    Dernier message: 23/08/2006, 10h59

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