none
Vider un datagridview RRS feed

  • Discussion générale

  • 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

    jeudi 3 juin 2010 14:37

Toutes les réponses

  • Bonjour,

    Videz votre DataTable associée :

    monDataSet.Tables(0).Clear()

    Cordialement


    Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    jeudi 3 juin 2010 20:09
    Modérateur
  • 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

    vendredi 4 juin 2010 11:49
  • 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

     

     

    vendredi 4 juin 2010 13:25
  • 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

    samedi 5 juin 2010 19:51
  • 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

     

     

    lundi 7 juin 2010 12:42
  • 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

     

     

    lundi 7 juin 2010 13:07
  •          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

     

     

    lundi 7 juin 2010 22:58
  • 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
    mardi 8 juin 2010 18:24
    Modérateur
  • 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

     

     

    mercredi 9 juin 2010 09:39
  • gridview.datasource=nothing
    gridview.databind()
    mardi 29 mai 2012 18:54
  • 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

    vendredi 27 juillet 2012 12:45
  • 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.

    lundi 30 juillet 2012 23:09
  • 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 !

    mercredi 26 décembre 2012 23:12
  • 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 !

    jeudi 27 décembre 2012 13:13
  • 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 !

    jeudi 27 décembre 2012 23:04
  • 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 !



    • Modifié Lyamine vendredi 28 décembre 2012 11:04
    vendredi 28 décembre 2012 10:26
  • 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.



    • Modifié Anouch samedi 29 décembre 2012 00:41
    vendredi 28 décembre 2012 19:33
  • 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 !

    samedi 29 décembre 2012 01:18
  • 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 !




    • Modifié Anouch dimanche 30 décembre 2012 02:25
    samedi 29 décembre 2012 18:04