private void TreeViewTables_BeforeExpand(object sender, TreeViewCancelEventArgs e) { if (!GetMainHome().GetUserControl <Editor>().GetQueryExecutor().IsAlive()) { switch ((e.Node as MyTreeNode).Type) { case NodeType.Table: { List <string> fields = DbDataHelper.getTableFields(GetSqlConnection(), e.Node.Text); List <string> fieldsInfo = DbDataHelper.getTableInfo(GetSqlConnection(), e.Node.Text); List <MyTreeNode> nodes = new List <MyTreeNode>(); foreach (string f in fields) { nodes.Add(new MyTreeNode() { Text = f, ImageIndex = 1, SelectedImageIndex = 1 }); } foreach (string f in fieldsInfo) { nodes.Add(new MyTreeNode() { Text = f, ImageIndex = 2, SelectedImageIndex = 2 }); } var triggerParentNode = new MyTreeNode() { Text = "Triggers", ImageIndex = 3, SelectedImageIndex = 3, Type = NodeType.ParentTrigger }; triggerParentNode.Nodes.Add(getDummy()); nodes.Add(triggerParentNode); this.setTableFields(nodes, e.Node as MyTreeNode); } break; case NodeType.ParentTrigger: { List <string> triggers = DbDataHelper.getTableTriggers(GetSqlConnection(), e.Node.Parent.Text); List <MyTreeNode> nodes = new List <MyTreeNode>(); foreach (string t in triggers) { nodes.Add(new MyTreeNode() { Text = t, Type = NodeType.Trigger, ImageIndex = 3, SelectedImageIndex = 3 }); } this.setTableFields(nodes, e.Node as MyTreeNode); } break; } } }
private void sendCreateTableWithTriggersToEditor(string table) { StringBuilder sb = new StringBuilder(); sb.Append(DbDataHelper.getCreateTable(GetSqlConnection(), table) + ";\r\n"); List <string> triggers = DbDataHelper.getTableTriggers(GetSqlConnection(), table); foreach (string t in triggers) { sb.Append("\r\n" + DbDataHelper.GetCreateTrigger(GetSqlConnection(), table, t) + "\r\n"); } GetMainHome().GetUserControl <Editor>().AddQueryTab(sb.ToString(), table); }