Vider un datagridview
-
Thursday, June 03, 2010 2:37 PM
Bonsoir,
j'arrive à afficher les informations dans un datagridview.ensuite je veux le vider afin de pouvoir afficher d'autres informations.mai je n'y arrive pas.
j'ai essayé cette instruction : Me.Fi_BordereauDataGridView_Assure.DataSource = Nothing mais elle ne me donne pas le résultat voulu.il vide la datagridview mais les informations ,je pense, restent en mémoire;alors que je veux la vider complètement afin d'y afficher d'autres informations. Aidez moi !?
Cordialement
- Changed Type Gilles TOURREAUMVP, Moderator Thursday, June 03, 2010 8:09 PM
- Changed Type Alex PetrescuMicrosoft Employee, Moderator Thursday, June 10, 2010 7:57 AM
All Replies
-
Thursday, June 03, 2010 8:09 PMModerator
Bonjour,
Videz votre DataTable associée :
monDataSet.Tables(0).Clear()
Cordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr -
Friday, June 04, 2010 11:49 AM
Bonjour,
Que veux dire 0 dans la tables(0) ,car j'ai un message d'erreur me disant qu'il ne trouve pas l'indice 0 ?
Cordialement
-
Friday, June 04, 2010 1:25 PMModerator
Bonjour,
Le ‘0’ est l’index de la première table dans votre DataSet. Normalement, vous devriez avoir au moins une table dans le DataSet. Avez-vous un objet DataSet avec une table comme source de données initiale pour le DataGridView ?
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Workflow Foundation
-
Saturday, June 05, 2010 7:51 PM
Bon soir edson80,
le 0 c'est l'indice de votre table dans le dataset
vous poiuvez aussi ecrire le nom de votre table :
mondataset.tables("montable").clear()
Cordialement,
ftya
-
Monday, June 07, 2010 12:42 PM
Bonjour,
lorsque en remplacement du "0", j'ai mis le nom de la table.j'ai toujours une erreur me disant ceci
DatSet.Tables("Fi_Bordereau ").Clear()
La référence d'objet n'est pas définie à une instance d'un objet. Que dois je faire ?
Cordialemen
-
Monday, June 07, 2010 1:07 PMModerator
Bonjour,
Apparemment, aucune table ne se trouve dans votre DataSet.
Pouvez-vous nous montrer le code que vous utilisez pour ajouter la table dans le DataSet ?
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Workflow Foundation
-
Monday, June 07, 2010 10:58 PM
si vous etes sure que le nom de votre table dans le dataset est :"Fi_Bordereau "
alors : utilisez le try
Try
DatSet.Tables("Fi_Bordereau ").Clear()
Catch ex As Exception
End Try
Cordialement,
ftya
-
Tuesday, June 08, 2010 6:24 PMModerator
Bonjour,
Le code précédent est un très mauvais exemple. N'utilisez pas de bloc Try / Catch (avec Exception) permettant d'ignorer des erreurs de programmation !!!
Préférez :
If DatSet.Tables.Contains("Fi_Bordereau") = True Then ' La table existe End IfCordialement
Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr -
Wednesday, June 09, 2010 9:39 AMModerator
Bonjour,
Edson80, avez-vous trouvé si votre DataSet contient des tables ou pas ?
Cordialement,
Alex
__________________________________________________________________________________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Workflow Foundation
-
Tuesday, May 29, 2012 6:54 PMgridview.datasource=nothing
gridview.databind() -
Friday, July 27, 2012 12:45 PM
Imports System.Data.SqlClient '* Alternate line close de DB connection after fillin the DataSet Dim cnnDB As DbConnection Dim DBBindingSource As New BindingSource Dim MissionType As New DataSet Dim SqlDBAdapter As SqlDataAdapter '* Using cnnDB.Open() cnnDB.Open() SqlDBAdapter = New SqlDataAdapter(SqlCmd, cnnDB) '* The following line will track all the changes made in DataGridView1 Dim cmdBuilder As New SqlClient.SqlCommandBuilder(SqlDBAdapter) '* The following line will clear the DataGridView1 MissionType.Clear() SqlDBAdapter.Fill(MissionType, "MissionType") '* Alternate Line to close the DB connection '* End Using cnnDB.close() DBBindingSource.DataSource = MissionType '.Tables("MissionType") If MissionType.Tables("MissionType").Rows.Count <> 0 Then DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells DataGridView1.DataSource = BindingSource1.DataSource DataGridView1.Update() End If -
Monday, July 30, 2012 11:09 PM
-
Wednesday, December 26, 2012 11:12 PM
Bonjour,
Je suis dans le même cas que notre amis edson80 sauf que j'utilise une collection.
Comment vider le DataGridView pour à nouveau le remplir avec de nouvelles données.
La finalité de ceci serai tout simplement de rafraîchir mon DataGridView dès qu'un nouvel objet est inséré dans ma collection.
Merci !
-
Thursday, December 27, 2012 1:13 PM
Bonjour,
Je suis dans le même cas que notre amis edson80 sauf que j'utilise une collection.
Comment vider le DataGridView pour à nouveau le remplir avec de nouvelles données.
La finalité de ceci serai tout simplement de rafraîchir mon DataGridView dès qu'un nouvel objet est inséré dans ma collection.
Merci !
Bonjour,
Pourquoi vider le contenu et le recharger. Cela alourdit le traitement. Le mieux est d'ajouter l'élément au datagridview et si vous avez un trie à faire effectuez le après insertion.
CordialementMerci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
-
Thursday, December 27, 2012 11:04 PM
Bonjour,
Je suis dans le même cas que notre amis edson80 sauf que j'utilise une collection.
Comment vider le DataGridView pour à nouveau le remplir avec de nouvelles données.
La finalité de ceci serai tout simplement de rafraîchir mon DataGridView dès qu'un nouvel objet est inséré dans ma collection.
Merci !
Bonjour,
Pourquoi vider le contenu et le recharger. Cela alourdit le traitement. Le mieux est d'ajouter l'élément au datagridview et si vous avez un trie à faire effectuez le après insertion.
Cordialement
Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
Bonjour,
Pour entrer un peu plus dans le détail, c'est plusieurs DatGridView que je souhaite rafraichir, chacun ayant un ensemble de donnée différent.
Je souhaite vider le contenu des DataGridView et le recharger car la collection est alimentée par une bdd maintenue à jour par plusieurs users sur différents postes. Et je ne souhaite pas faire de "select" différent pour chaque DataGridView car trop coûteux en temps de réponse, un seul "select" global est fait et le traitement des données est fait sur les postes des users.
Du coup est-il plus rapide de :
1- parcourir et comparer chaque élément de la collection à l'ensemble des lignes du datagridview
2- tout supprimer + tout réinsérer
PS: le nombre d'objet de ma collection ne dépassera jms la centaine
Merci !
-
Friday, December 28, 2012 10:26 AM
Bonjour,
Dans les deux cas il une requête, une réponse.
Votre but est bien de rafraîchir votre datagridview si quelqu'un y a ajouté des informations ?
Ensuite, est-ce que vous utilisez un DataSet pour alimenter votre datasource ?
Essayez de voir avec SqlConnection.InfoMessage qui va sans doute retourné un événement sur les modifications.
Cordialement
Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
- Edited by LyamineMicrosoft Community Contributor Friday, December 28, 2012 11:04 AM
-
Friday, December 28, 2012 7:33 PM
Bonjour,
Oui mon but est bien de rafraîchir mon DGV si une personne modifie la bdd (ACCESS). Je souhaite garder mon DGV en lecture seule uniquement donc les données passent par
BDD -> List<T> -> (DGV et Ctrl 1 et Ctrl 2)
Oui j'utilise un DataSet pour y remonter mon "select".
Avec ACCESS est-il possible de faire remonter un évènement lors de modif sur la BDD ?
J'ai essayé de travailler avec une BindingList<T> + l'interface INotifyPropertyChanged pour lier dynamiquement le DGV à ma collection mais ca me parrait beaucoup trop compliqué a maintenir ensuite.
Merci pour votre aide.
- Edited by Anouch Saturday, December 29, 2012 12:41 AM
-
Saturday, December 29, 2012 1:18 AM
Bonjour,
Je ne pense pas que ce soit possible. Dans ce cas il faut faire du client serveur. La solution la plus rapide à mettre en œuvre est le remoting ou WCF. Vous aurez un serveur (exe) en écoute sur une machine qui sera la seul application à communiquer avec la DB. Depuis les applications clientes, vous faite une communication WCF/remoting avec ce serveur. Le serveur exposera les méthodes CRUD de votre couche et retournera à sa liste de clients un CallBack de modification avec les informations à jours. Voir ici http://vincentlaine.developpez.com/tuto/dotnet/wcf/#LI
Est-ce que vous avez compris ?
Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
-
Saturday, December 29, 2012 6:04 PM
Bonjour Lyamine,
Merci pour l'info sur mode client-serveur, je vois le principe j'ai déjà programmé une appli similaire il y a quelques temps.
Je pense que pour une première version de mon programme je me contenterai de remonter, à l'initiative des users les nouvelles données. je modifierai cette (grosse) partie plus tard.
Pour en revenir au DGV, j'ai réussi à binder mes différentes collections à mes DGV (BindingList<T> + INotifyPropertyChanged). Du coup l'ajout, la suppression et la modif de champs d'objet dans mes collections sont automatiquement répèrcuté sur les DGV.
Merci !
- Edited by Anouch Sunday, December 30, 2012 2:25 AM

