示例#1
0
        private void LoadSourceDbSchemaInfo()
        {
            this.tvSource.Nodes.Clear();

            DatabaseType  dbType        = this.GetDatabaseType(this.cboSourceDB.Text);
            DbInterpreter dbInterpreter = DbInterpreterHelper.GetDbInterpreter(dbType, this.sourceDbConnectionInfo, new GenerateScriptOption());

            if (dbInterpreter is SqlServerInterpreter)
            {
                TreeNode userDefinedRootNode = new TreeNode("User Defined Types");
                userDefinedRootNode.Name = nameof(UserDefinedType);
                this.tvSource.Nodes.Add(userDefinedRootNode);

                List <UserDefinedType> userDefinedTypes = dbInterpreter.GetUserDefinedTypes();
                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 = dbInterpreter.GetTables();

            foreach (Table table in tables)
            {
                TreeNode tableNode = new TreeNode();
                tableNode.Tag  = table;
                tableNode.Text = dbInterpreter.GetDisplayTableName(table, false);
                tableRootNode.Nodes.Add(tableNode);
            }
        }