Auteur de questions
Cherche documentation sur le DATAGRIDVIEW

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
Merci à tous et bon w-e allongé a ceux qui font le pont.
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é !!!
-
Bonjour Gilles,
Tout d'abord un grand merci pour vos réponses et surtout de l'accueil !
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
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 ! -
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
-
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 -
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
-
-