protected override void OnRefresh(object sender, EventArgs args) { this.TreeNode.TreeView.BeginUpdate(); //获取最新的表 try { DbSchema.DatabaseSchema db = DatabaseSchema.CreateInstance(DBGlobalService.DbType); db.ConnectionString = DBGlobalService.ConnectionString; //db.Provider = new DbSchema.DbSchemaProvider.SqlSchemaProvider(); var temp = db.GetTable(this.Name); if (temp == null) { throw new Exception("数据库不存在该表:" + this.Name); } this.Table = db.GetTable(this.Name); this._modelNode.ColumnSetName = this.Table.Name; if (string.IsNullOrWhiteSpace(_modelNode.Name)) { this._modelNode.Name = this.Table.Name; } this._modelNode.Children.Clear(); foreach (ColumnSchema column in this.Table.Columns) { //如果没有该列对应字段,则添加 var exsitedNode = from n in this._modelNode.Children where (n is FieldNode) && ((FieldNode)n).ColumnName == column.Name select n; if (exsitedNode.Count() == 0) { FieldNode fNode = NodeFactory.CreateNode <FieldNode>();// new FieldNode(); fNode.Assign(column); fNode.Parent = this._modelNode; } else { ((FieldNode)exsitedNode.ElementAt(0)).Assign(column); } } } catch (Exception ex) { MessageBox.Show("失败:" + ex.Message); } base.OnRefresh(sender, args); this.TreeNode.TreeView.EndUpdate(); }
protected override void OnRefresh(object sender, EventArgs args) { //获取最新的表 try { DbSchema.DatabaseSchema db = DatabaseSchema.CreateInstance(this.DbType); db.ConnectionString = this.ConncetionString; //db.Provider = new DbSchema.DbSchemaProvider.SqlSchemaProvider(); var tables = db.Tables; TablePackageNode tablePkgNode = null; foreach (BaseNode n in this.Children) { if (n is TablePackageNode) { tablePkgNode = (TablePackageNode)n; } } this.TreeNode.TreeView.BeginUpdate(); foreach (DbSchema.TableSchema table in tables) { if (table.IsView) { bool exsited = false; foreach (ViewNode each in this._viewPackageNode.Children) { if (each.Name.Equals(table.Name)) { exsited = true; each.Table = table; break; } } if (!exsited) { ViewNode tableNode = new ViewNode(); tableNode.Text = tableNode.Name = table.Name; tableNode.Parent = _viewPackageNode; tableNode.Table = table; } } else { bool exsited = false; foreach (TableNode each in tablePkgNode.Children) { if (each.Name.Equals(table.Name)) { exsited = true; each.Table = table; break; } } if (!exsited) { TableNode tableNode = new TableNode(); tableNode.Text = tableNode.Name = table.Name; tableNode.Parent = tablePkgNode; tableNode.Table = table; } } } this.sortTables(); this.TreeNode.TreeView.EndUpdate(); //检查EF } catch (Exception ex) { MessageBox.Show("失败:" + ex.Message); } base.OnRefresh(sender, args); }