none
Cherche documentation sur le DATAGRIDVIEW RRS feed

  • Question

  • Salut à tous !

    Voila je développe actuellement et depuis peu avec le contrôle DATAGRIDVIEW. je cherche de la doc complète pour éviter de venir embêter en permanance les membres de ce forum.

    par exemple :
    j'ai un formulaire qui écrit directement dans la BDD access. Quand je reviens sur ma fenêtre principale qui affiche la table (ou je fais mes insert) dans un datagrid, la ligne ajoutée n'apparait pas malgré un "update" ou un "refresh" du datagrid. Sur les docs ont trouve généralement comment répercuter une modif ds le datagrid sur la bdd access mais pas l'inverse !!

    j'attend vos lumières Smile

    Merci à tous et bon w-e allongé a ceux qui font le pont.
    mercredi 30 avril 2008 16:59

Toutes les réponses

  • Bonjour,

     

    Au niveau du DataGridView il y a la doc officiel :

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.datagridview(VS.80).aspx

     

    Votre problème ne provient pas d'un problème du DataGridView.

    Il faut savoir que le concept ADO .NET est du client/serveur déconnecté.

    Le client : Votre application

    Le serveur : Le SGBD (même s'il est local, même si c'est Access !)

     

    Lorsque vous remplissez votre table, vous executez votre requête sur le serveur qui vous renvoi des résultats et qui sont stockés en mémoire (DataSet). Le DataSet n'est ni plus ni mois qu'un tableau en mémoire au niveau client.

    Après exécution de la requête, vous pouvez couper avec des ciseaux le cable réseau entre votre client et votre serveur, l'application tournera toujours et le DataGridView aussi !

     

    Quand vous envoyez une requête INSERT, le DataSet n'est pas mis à jour, et ni le DataGridView...

    Vous devez donc dans ce cas, ressouder le cable que vous avez sauvagement coupé, réactualiser le DataSet associé à votre DataGridView via la méthode Fill(). Cela executera une requête SELECT afin d'obtenir les nouvelles modifications dans le DataSet (et celles des autres utilisateurs dans une application multi-utilisateurs).

    Le DataGridView se mettra à jour en conséquence...

     

    La méthode Refresh() du DataGridView permet de rafraichir le dessin du DataGridView et non les données...

     

    Sachez que vous n'embetez nullement les personnes du forums du moment que vos messages commence au minimum par un "Bonjour" et finisse par un "Merci"...

     

    Cordialement

     

    PS : Je n'ai pas de week end allongé !!!

    mercredi 30 avril 2008 19:23
    Modérateur
  • Bonjour Gilles,

    Tout d'abord un grand merci pour vos réponses et surtout de l'accueil ! Smile

     Gilles TOURREAU A écrit:

     réactualiser le DataSet associé à votre DataGridView via la méthode Fill(). Cela executera une requête SELECT afin d'obtenir les nouvelles modifications dans le DataSet (et celles des autres utilisateurs dans une application multi-utilisateurs).

    Le DataGridView se mettra à jour en conséquence...



    C'est exactement ce que je cherchais, pouvoir refaire un select car j'avais vagement compris l'utilité du DataSet mais voila que c'est plus clair maintenant.

    Du coup avec vos conseils, j'ai mis la ligne suivante dans l'évenement correspondant au bouton qui valide l'insert :

    Me.TableAdapter.Fill(Me.DataSet.Table)

    Mais rien n'y fait ! N'avez vous pas un schéma de type flux permettant de comprendre ce qui se passe concretement entre tout ces objets ? Je crois qu'il faut que je commence par la avant de continuer car c'est un peu de la bidouille pour le moment !

    Encore un grand merci !

    Ps : je n'ai pas de point non plus Crying

    EDIT : j'en profite pour soulever une autre question... lorsque j'execute mon application dans son état actuel (très précaire) une fois le datagrid afficher, l'appli utilise 45Mo de mémoire ! Quand je selectionne une ligne cela prend pres d'une seconde avant de se mettre en surbrillance... bref c'est lourd ! Si c'est hors sujet Messieurs les modérateurs, je repost ailleur !
    jeudi 1 mai 2008 09:51
  • Bonjour,

     

    Votre DataGridView doit normalement être associé à un DataSet, ou un BindingSource.

    Dans le dernier cas, le BindingSource est associé à un DataSet. (se référer dans tout les cas à la propriété DataSource)

     

    Lorsque vous faites :

    Me.TableAdapter.Fill(Me.DataSet.Table)

    Est ce que le DataSet que vous passez en paramètre (Me.DataSet) est bien celui spécifié dans le DataGridView ?

     

    Pour les problèmes de performances, combien de lignes renvoie votre requête SELECT dans le Fill() ? 

     

    Cordialement

     

    vendredi 2 mai 2008 14:19
    Modérateur
  • Bonjour,

    Quand je fait mon fill j'ai verifieret il est relié à un blindingsource. Je ne comprend vraiment pas. Après avoir passé quelque temps sur les différents articles et forum sur le sujet je ne vois pas ou est mon erreur. Je rpécise que mon datagrid a été créer avec la méthode sans click c'est à dire en utilisant la UI...

    Ca commence à être très lent au bout d'une petite dizaine de ligne ! Je suis en phase de debug et je n'ai qu'un petit jeu de test pour mon application.

    Bien à vous
    vendredi 2 mai 2008 16:15
  • Bonjour,

     

    Est-il possible que vous puissiez m'envoyer votre projet sur gilles.tourreau@pos.fr afin que j'y jette un oeil dessus ?

     

    Cordialement

     

    samedi 3 mai 2008 15:25
    Modérateur
  • Bonjour,

    je vous remerci pour votre très généreus proposition. Je vous envoi le mail à l'instant mais ne vous précipitez pas pour regardez, il n'y a vraiment aucune urgence votre aide m'est déjà d'un grand secour !

    Sincèrement merci pour tout !
    samedi 3 mai 2008 16:34
  • J'attend tjr une répnse de Gilles mais si d'autres forumeur ont une idée qu'ils se fassent connaitre Smile

    Merci à vous !
    lundi 12 mai 2008 14:45