Пример #1
0
        /// <summary>
        /// MJTop.Data数据库对象Instance转TableDto
        /// </summary>
        /// <returns>tables</returns>
        private System.Collections.Generic.List <TableDto> DBInstanceTransToDto()
        {
            System.Collections.Generic.List <TableDto> tables = new System.Collections.Generic.List <TableDto>();

            // TODO 查询数据库表集合
            System.Collections.Specialized.NameValueCollection dict_tabs = DBUtils.Instance.Info.TableComments;

            // TODO 根据选择的表名进行导出相关处理
            System.Collections.Generic.List <string> checkedTableNames = new System.Collections.Generic.List <string>();
            for (var j = 0; j < checkedListBox1.Items.Count; j++)
            {
                if (checkedListBox1.GetItemChecked(j))
                {
                    // TODO 选中的表名
                    string checkedTableName = checkedListBox1.GetItemText(checkedListBox1.Items[j]);
                    checkedTableNames.Add(checkedTableName);
                }
            }
            if (checkedTableNames.Count == 0)
            {
                // TODO 未选择指定表,默认全部表处理
                for (var j = 0; j < checkedListBox1.Items.Count; j++)
                {
                    string checkedTableName = checkedListBox1.GetItemText(checkedListBox1.Items[j]);
                    checkedTableNames.Add(checkedTableName);
                }
            }

            int i = 1; // 计数器

            foreach (var tableName in checkedTableNames)
            {
                TableDto tableDto = new TableDto();

                tableDto.TableOrder = i + "";                                                                         // 序号
                tableDto.TableName  = tableName;                                                                      // 表名
                tableDto.Comment    = (!string.IsNullOrWhiteSpace(dict_tabs[tableName]) ? dict_tabs[tableName] : ""); // 表注释(说明)

                // TODO 查询数据库表字段集合
                var columns  = new System.Collections.Generic.List <ColumnDto>();
                var dictTabs = DBUtils.Instance.Info.TableInfoDict;
                MJTop.Data.TableInfo tabInfo = null;
                if (dictTabs.Case == MJTop.Data.KeyCase.Lower)
                {
                    tabInfo = dictTabs[tableName.ToLower()];
                }
                else
                {
                    tabInfo = dictTabs[tableName.ToUpper()];
                }
                // TODO 添加数据字段行,循环数据库表字段集合
                foreach (var col in tabInfo.Colnumns)
                {
                    ColumnDto columnDto = new ColumnDto();

                    columnDto.ColumnOrder    = col.Colorder + "";                                                  // 序号
                    columnDto.ColumnName     = col.ColumnName;                                                     // 列名
                    columnDto.ColumnTypeName = col.TypeName;                                                       // 数据类型
                    columnDto.Length         = (col.Length.HasValue ? col.Length.Value.ToString() : "");           // 长度
                    columnDto.Scale          = (col.Scale.HasValue ? col.Scale.Value.ToString() : "");             // 小数位
                    columnDto.IsPK           = (col.IsPK ? "√" : "");                                              // 主键
                    columnDto.IsIdentity     = (col.IsIdentity ? "√" : "");                                        // 自增
                    columnDto.CanNull        = (col.CanNull ? "√" : "");                                           // 允许空
                    columnDto.DefaultVal     = (!string.IsNullOrWhiteSpace(col.DefaultVal) ? col.DefaultVal : ""); // 默认值
                    columnDto.Comment        = (!string.IsNullOrWhiteSpace(col.DeText) ? col.DeText : "");         // 列注释(说明)

                    columns.Add(columnDto);
                }
                tableDto.Columns = columns; // 数据库表字段集合赋值

                tables.Add(tableDto);

                i++;
            }
            return(tables);
        }
Пример #2
0
        /// <summary>
        /// MJTop.Data数据库对象Instance转TableDto
        /// </summary>
        /// <returns>tables</returns>
        private List <TableDto> DBInstanceTransToDto()
        {
            List <TableDto> tables = new System.Collections.Generic.List <TableDto>();

            // TODO 查询数据库表集合
            NameValueCollection dict_tabs = DBUtils.Instance.Info.TableComments;

            // TODO 根据选择的表名进行导出相关处理
            List <string> checkedTableNames = CkListBox.CheckedItems.Cast <string>().ToList();


            if (checkedTableNames.Count == 0)
            {
                checkedTableNames = DBUtils.Instance?.Info?.TableNames ?? new List <string>();
            }

            int i = 1; // 计数器

            foreach (var tableName in checkedTableNames)
            {
                TableDto tableDto = new TableDto();

                tableDto.TableOrder = i + "";                                                                         // 序号
                tableDto.TableName  = tableName;                                                                      // 表名
                tableDto.Comment    = (!string.IsNullOrWhiteSpace(dict_tabs[tableName]) ? dict_tabs[tableName] : ""); // 表注释(说明)

                // TODO 查询数据库表字段集合
                var columns  = new System.Collections.Generic.List <ColumnDto>();
                var dictTabs = DBUtils.Instance.Info.TableInfoDict;
                MJTop.Data.TableInfo tabInfo = null;
                if (dictTabs.Case == MJTop.Data.KeyCase.Lower)
                {
                    if (!dictTabs.ContainsKey(tableName.ToLower()))
                    {
                        throw new Exception(tableName.ToLower());
                    }
                    tabInfo = dictTabs[tableName.ToLower()];
                }
                else
                {
                    if (!dictTabs.ContainsKey(tableName.ToUpper()))
                    {
                        throw new Exception(tableName.ToUpper());
                    }
                    tabInfo = dictTabs[tableName.ToUpper()];
                }
                // TODO 添加数据字段行,循环数据库表字段集合
                foreach (var col in tabInfo.Colnumns)
                {
                    ColumnDto columnDto = new ColumnDto();

                    columnDto.ColumnOrder    = col.Colorder + "";                                                  // 序号
                    columnDto.ColumnName     = col.ColumnName;                                                     // 列名
                    columnDto.ColumnTypeName = col.TypeName;                                                       // 数据类型
                    columnDto.Length         = (col.Length.HasValue ? col.Length.Value.ToString() : "");           // 长度
                    columnDto.Scale          = (col.Scale.HasValue ? col.Scale.Value.ToString() : "");             // 小数位
                    columnDto.IsPK           = (col.IsPK ? "√" : "");                                              // 主键
                    columnDto.IsIdentity     = (col.IsIdentity ? "√" : "");                                        // 自增
                    columnDto.CanNull        = (col.CanNull ? "√" : "");                                           // 允许空
                    columnDto.DefaultVal     = (!string.IsNullOrWhiteSpace(col.DefaultVal) ? col.DefaultVal : ""); // 默认值
                    columnDto.Comment        = (!string.IsNullOrWhiteSpace(col.DeText) ? col.DeText : "");         // 列注释(说明)

                    columns.Add(columnDto);
                }
                tableDto.Columns = columns; // 数据库表字段集合赋值

                tables.Add(tableDto);

                i++;
            }
            return(tables);
        }