public async Task <TableViewInfo> GetTableInfo(int connId, string databaseName, string schemaName, string name)
        {
            const string sql     = @"select Name,SqlType,ConnectionString from SqlConn where Id=@0 and IsDelete=0";
            var          helper  = GetReadHelper();
            var          connDto = await helper.FirstOrDefault_Async <SqlConnDto>(sql, connId);

            if (connDto == null)
            {
                return(new TableViewInfo());
            }
            var           provider     = SqlCache.Instance.GetSqlCommonProvider(connDto.SqlType);
            var           tableEntity  = provider.GetTable(connDto.ConnectionString, databaseName, schemaName, name);
            var           tableColumns = provider.GetTableColumns(connDto.ConnectionString, databaseName, schemaName, name);
            TableViewInfo tableInfo    = new TableViewInfo()
            {
                AdminName     = "System",
                ServerName    = connDto.Name,
                ServerType    = connDto.SqlType,
                DatabaseName  = databaseName,
                SchemaName    = schemaName,
                TableName     = tableEntity.TableName,
                Comment       = tableEntity.Comment,
                OperationTime = System.DateTime.Now,
                Columns       = new List <TableColumnInfo>(),
            };

            for (int i = 0; i < tableColumns.Count; i++)
            {
                var column = tableColumns[i];
                tableInfo.Columns.Add(new TableColumnInfo()
                {
                    Index        = i,
                    ColumnName   = column.ColumnName,
                    Comment      = column.Comment,
                    Type         = column.Type,
                    Length       = column.Length,
                    Precision    = column.Precision,
                    Scale        = column.Scale,
                    IsPrimaryKey = column.IsPrimaryKey,
                    IsIdentity   = column.IsIdentity,
                    IsNullAble   = column.IsNullAble,
                    DefaultValue = column.DefaultValue
                });
            }
            return(tableInfo);
        }
예제 #2
0
        public IActionResult GetTestTableData()
        {
            TableViewInfo tableInfo = new TableViewInfo()
            {
                AdminName     = "管理员",
                OperationTime = DateTime.Now,
                Namespace     = "ToolGood.SqlOnline",
                ServerName    = "测试服务器",
                ServerType    = "SqlServer",
                DatabaseName  = "ToolGood",
                SchemaName    = "dbo",
                TableName     = "Member",
                Comment       = "成员表",
                Columns       = new List <TableColumnInfo>()
                {
                    new TableColumnInfo()
                    {
                        Index        = 1,
                        ColumnName   = "Id",
                        Comment      = "主键自增",
                        IsPrimaryKey = true,
                        Type         = "bigint",
                        IsIdentity   = true,
                    },
                    new TableColumnInfo()
                    {
                        Index      = 2,
                        ColumnName = "UserName",
                        Comment    = "用户名",
                        Type       = "varchar",
                        Length     = "20",
                    },
                    new TableColumnInfo()
                    {
                        Index      = 3,
                        ColumnName = "Password",
                        Comment    = "密码",
                        Type       = "char",
                        Length     = "32",
                    },
                    new TableColumnInfo()
                    {
                        Index      = 4,
                        ColumnName = "Email",
                        Comment    = "邮箱",
                        Type       = "char",
                        Length     = "100",
                    },
                    new TableColumnInfo()
                    {
                        Index      = 5,
                        ColumnName = "NickName",
                        Comment    = "昵称",
                        Type       = "nvarchar",
                        Length     = "50",
                    },
                    new TableColumnInfo()
                    {
                        Index      = 6,
                        ColumnName = "Phone",
                        Comment    = "手机号",
                        Type       = "varchar",
                        Length     = "20",
                    },
                    new TableColumnInfo()
                    {
                        Index      = 7,
                        ColumnName = "CreateTime",
                        Comment    = "创建日期",
                        Type       = "datetime",
                    },
                    new TableColumnInfo()
                    {
                        Index        = 0,
                        ColumnName   = "IsDelete",
                        Comment      = "是否删除",
                        Type         = "bit",
                        DefaultValue = "(0)"
                    },
                }
            };

            return(Success(tableInfo, null));
        }