SMO Sample #2bis : Recherche des dépendances et restitution
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);
}
}
}
____