# Change the data source during runtime in C#

**URL:** <https://forum.kirupa.com/t/change-the-data-source-during-runtime-in-c/264108>\
**Category:** Uncategorized\
**Created:** [June 23, 2008, 8:30am UTC](https://forum.kirupa.com/t/change-the-data-source-during-runtime-in-c/264108 "2008-06-23T08:30:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![fishjelly](https://avatars.discourse-cdn.com/v4/letter/f/c57346/32.png) [@fishjelly](https://forum.kirupa.com/u/fishjelly)\
**Post date:** [June 23, 2008, 8:30am UTC](https://forum.kirupa.com/t/change-the-data-source-during-runtime-in-c/264108/1 "2008-06-23T08:30:45Z")

</div>

I have a tree view which works fine but I want to change the data source during runtime in C#  
The data is stored procedures and I want the user to be able to type criteria then re-bind the treeview  
I cannot see a way in to this  
any ideas please

---

<div class="post-metadata">

**Author:** ![ices](https://avatars.discourse-cdn.com/v4/letter/i/a587f6/32.png) [@ices](https://forum.kirupa.com/u/ices)\
**Post date:** [July 11, 2008, 2:52am UTC](https://forum.kirupa.com/t/change-the-data-source-during-runtime-in-c/264108/2 "2008-07-11T02:52:01Z")

</div>

I use dataset and coding like this:  
private void FillTreeNodes()  
{  
this.tvCatalogue.Nodes.Clear();

```
        string sgId;
        CatalogueMainGroup curmain;
        for (int i = 0; i &lt; myTables.MainGroup.Length; i++)
        {
            curmain = myTables.MainGroup*;
            if (curmain != null)
            {
                sgId = i.ToString() + ": " + curmain.Title;
                this.tvCatalogue.Nodes.Add(sgId);
                FillSubNode(this.tvCatalogue.Nodes.Count - 1, curmain.Id);
            }
        }
        
    }

    private void FillSubNode(int parentNode, int mainId)
    {
        string sgId;
        CatalogueSubGroup cursub;
        for (int i = 0; i &lt; myTables.SubGroup.Length; i++)
        {
            cursub = myTables.SubGroup*;
            if (cursub != null)
            {
                if (cursub.MainGroupId == mainId)
                {
                    sgId = i.ToString() + ": " + cursub.Title;
                    this.tvCatalogue.Nodes[parentNode].Nodes.Add(sgId);
                }
            }
        }
    }
```

---

<div class="post-metadata">

**Author:** ![ices](https://avatars.discourse-cdn.com/v4/letter/i/a587f6/32.png) [@ices](https://forum.kirupa.com/u/ices)\
**Post date:** [July 11, 2008, 2:55am UTC](https://forum.kirupa.com/t/change-the-data-source-during-runtime-in-c/264108/3 "2008-07-11T02:55:17Z")

</div>

ps: Sory, that example use a String array to fill node. The point is how to fill the node:  
this.tvCatalogue. **Nodes.Add** (sgId);  
this.tvCatalogue.Nodes[parentNode]. **Nodes.Add** (sgId);
