Discussion générale Vider un datagridview

  • Thursday, June 03, 2010 2:37 PM
     
      Has Code

    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

All Replies

  • Thursday, June 03, 2010 8:09 PM
    Moderator
     
      Has Code

    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 PM
    Moderator
     
     

    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 PM
    Moderator
     
     

    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 PM
    Moderator
     
      Has Code

    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 If

    Cordialement


    Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
  • Wednesday, June 09, 2010 9:39 AM
    Moderator
     
     

    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 PM
     
     
    gridview.datasource=nothing
    gridview.databind()
  • Friday, July 27, 2012 12:45 PM
     
      Has Code
    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
     
     

    edson80, j'aimerais savoir avec quel type de données tu rempli ta datagridview ?

    est-ce une datatable ?, une collection ...

    ensuite je pourrai te donner plus d'informations sur comment vider ta grille afin de pouvoir charger de nouvelles données.

  • 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.

     

    Cordialement

    Merci 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 !



  • 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 ?

     

    Cordialement


    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
    •