private async Task <bool> IsNameExisted() { DatabaseType databaseType = this.rbAnotherDatabase.Checked ? this.ucConnection.DatabaseType : this.DatabaseType; ConnectionInfo connectionInfo = this.rbAnotherDatabase.Checked ? this.targetDbConnectionInfo : this.ConnectionInfo; DbInterpreterOption option = new DbInterpreterOption() { ObjectFetchMode = DatabaseObjectFetchMode.Simple }; DbInterpreter dbInterpreter = DbInterpreterHelper.GetDbInterpreter(databaseType, connectionInfo, option); SchemaInfoFilter filter = new SchemaInfoFilter() { TableNames = new string[] { this.txtName.Text.Trim() } }; var tables = await dbInterpreter.GetTablesAsync(filter); if (tables.Count > 0) { return(true); } return(false); }
private async void LoadSourceDbSchemaInfo() { this.tvSource.Nodes.Clear(); DatabaseType dbType = this.GetDatabaseType(this.cboSourceDB.Text); DbInterpreterOption option = new DbInterpreterOption() { ObjectFetchMode = DatabaseObjectFetchMode.Simple }; DbInterpreter dbInterpreter = DbInterpreterHelper.GetDbInterpreter(dbType, this.sourceDbConnectionInfo, option); if (dbInterpreter is SqlServerInterpreter) { List <UserDefinedType> userDefinedTypes = await dbInterpreter.GetUserDefinedTypesAsync(); if (userDefinedTypes.Count > 0) { TreeNode userDefinedRootNode = new TreeNode("User Defined Types"); userDefinedRootNode.Name = nameof(UserDefinedType); this.tvSource.Nodes.Add(userDefinedRootNode); foreach (UserDefinedType userDefinedType in userDefinedTypes) { TreeNode node = new TreeNode(); node.Tag = userDefinedType; node.Text = $"{userDefinedType.Owner}.{userDefinedType.Name}"; userDefinedRootNode.Nodes.Add(node); } } } TreeNode tableRootNode = new TreeNode("Tables"); tableRootNode.Name = nameof(Table); this.tvSource.Nodes.Add(tableRootNode); List <Table> tables = await dbInterpreter.GetTablesAsync(); foreach (Table table in tables) { TreeNode tableNode = new TreeNode(); tableNode.Tag = table; tableNode.Text = dbInterpreter.GetObjectDisplayName(table, false); tableRootNode.Nodes.Add(tableNode); } TreeNode viewRootNode = new TreeNode("Views"); viewRootNode.Name = nameof(DatabaseInterpreter.Model.View); this.tvSource.Nodes.Add(viewRootNode); List <DatabaseInterpreter.Model.View> views = ViewHelper.ResortViews(await dbInterpreter.GetViewsAsync()); foreach (var view in views) { TreeNode viewNode = new TreeNode(); viewNode.Tag = view; viewNode.Text = dbInterpreter.GetObjectDisplayName(view, false); viewRootNode.Nodes.Add(viewNode); } }
private async void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { TabPage tabPage = this.tabControl1.SelectedTab; if (tabPage == null) { return; } Table table = new Table() { Owner = this.cboOwner.Text, Name = this.txtTableName.Text.Trim() }; DbInterpreter dbInterpreter = this.GetDbInterpreter(); if (tabPage.Name == this.tabIndexes.Name) { tabPage.Tag = 1; this.ucIndexes.Table = table; if (!this.ucIndexes.Inited) { this.ucIndexes.InitControls(dbInterpreter); } if (!this.displayInfo.IsNew) { if (!this.ucIndexes.LoadedData) { SchemaInfoFilter filter = new SchemaInfoFilter(); filter.TableNames = new string[] { this.displayInfo.Name }; List <TableIndex> tableIndexes = await dbInterpreter.GetTableIndexesAsync(filter, true); this.ucIndexes.LoadIndexes(IndexManager.GetIndexDesignerInfos(this.displayInfo.DatabaseType, tableIndexes)); } } IEnumerable <TableColumnDesingerInfo> columns = this.ucColumns.GetColumns().Where(item => !string.IsNullOrEmpty(item.Name) && item.IsPrimary); this.ucIndexes.LoadPrimaryKeys(columns); } else if (tabPage.Name == this.tabForeignKeys.Name) { tabPage.Tag = 1; this.ucForeignKeys.Table = table; if (!this.ucForeignKeys.Inited) { dbInterpreter.Option.ObjectFetchMode = DatabaseObjectFetchMode.Simple; List <Table> tables = await dbInterpreter.GetTablesAsync(); if (this.displayInfo.IsNew) { tables.Add(new Table() { Name = "<self>" }); } this.ucForeignKeys.InitControls(tables); } if (!this.displayInfo.IsNew) { if (!this.ucForeignKeys.LoadedData) { SchemaInfoFilter filter = new SchemaInfoFilter(); filter.TableNames = new string[] { this.displayInfo.Name }; dbInterpreter.Option.ObjectFetchMode = DatabaseObjectFetchMode.Details; List <TableForeignKey> foreignKeys = await dbInterpreter.GetTableForeignKeysAsync(filter); this.ucForeignKeys.LoadForeignKeys(IndexManager.GetForeignKeyDesignerInfos(foreignKeys)); } } } else if (tabPage.Name == this.tabConstraints.Name) { tabPage.Tag = 1; if (!this.ucConstraints.Inited) { this.ucConstraints.InitControls(); } if (!this.displayInfo.IsNew) { if (!this.ucConstraints.LoadedData) { SchemaInfoFilter filter = new SchemaInfoFilter(); filter.TableNames = new string[] { this.displayInfo.Name }; List <TableConstraint> constraints = await dbInterpreter.GetTableConstraintsAsync(filter); this.ucConstraints.LoadConstraints(IndexManager.GetConstraintDesignerInfos(constraints)); } } } }