SMO Sample #2bis : Recherche des dépendances et restitution

Publié le par Renaud Harduin

Toujour sur le périmètre de la recherche des dépendances de tables, je fait un petit point intermédiaire de manière à les restituer dans mon IHM. Le plus simple est de les afficher dans un treeview.

Pour résumer, lorsque du clic sur le bouton "Analyse" de l'UI,
Je force pour l'analyse sur une base Sample de MS comme suit :


___

private void analyseToolStripMenuItem_Click(object sender, EventArgs e)

        {

            bool state = false;

            #region comments

            //if (UserMenuItem.Text == "" && PasswordMenuItem.Text == "")

            //{

            //    state = _tp.ConnectToDatabase(ServerMenuItem.Text,

            //                                  dbListCombo.SelectedText,

            //                                  ServerAuthMode.Integrated,

            //                                  null, null);

            //}

            //else

            //{

            //    state = _tp.ConnectToDatabase(ServerMenuItem.Text,

            //                                  dbListCombo.SelectedText,

            //                                  ServerAuthMode.Integrated,

            //                                  UserMenuItem.Text, PasswordMenuItem.Text);               

            //}    

            #endregion

 

            state = _tp.ConnectToDatabase(@".\BILAB2008","AdventureWorks",ServerAuthMode.Integrated,null,null);

 

            _tp.TableName = "SalesOrderHeader";

            _tp.Schema = "Sales";

 

            _tp = _tp.AnalyseDatabaseBy("SalesOrderHeader","Sales");

            TreeNode treeNode = new TreeNode();

 

            /* convert TreePath Tree into a TreeNode for display */

            this.AdaptTablePath(ref treeNode, _tp);

            DatabaseTreeView.Nodes.Add(treeNode);

        }


___

L'élément clef pour alimenter notre Trevview est l'objet treeNode. Nous l'alimentons en récurisif :

____

private void AdaptTablePath(ref TreeNode node, TablePath tablePath)

{

    node.Text = tablePath.TableName;

    if (tablePath.Childs != null)

    {

        foreach (TablePath tp in tablePath.Childs)

        {

            TreeNode childNode = new TreeNode(tp.TableName);

            AdaptTablePath(ref childNode, tp);

            node.Nodes.Add(childNode);

        }

    }

}


____

 
Publicité

Publié dans SMO

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article