Change the data source during runtime in C#

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

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

        string sgId;
        CatalogueMainGroup curmain;
        for (int i = 0; i < 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 < 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);
                }
            }
        }
    }

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);