Exemple #1
0
        public static DataTable GetDbTableColumnSchema(string tablename, string sqlconnection)
        {
            string  sql = @"
                            SELECT  tablename = d.name, tableDescription = ISNULL(f.value, ''), [order] = a.colorder, columnName = a.name,
                                    isIdentity = CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN 1
                                                      ELSE 0
                                                 END,
                                    isPrimarykey = CASE WHEN EXISTS ( SELECT 1
                                                                         FROM   sysobjects
                                                                         WHERE  xtype = 'PK' AND parent_obj = a.id AND name IN ( SELECT name
                                                                                                                                 FROM   sysindexes
                                                                                                                                 WHERE  indid IN ( SELECT   indid
                                                                                                                                                   FROM     sysindexkeys
                                                                                                                                                   WHERE    id = a.id AND colid = a.colid ) ) )
                                                           THEN 1
                                                           ELSE 0
                                                      END, dbtype = b.name, occupyByteLength = a.length, [length] = COLUMNPROPERTY(a.id, a.name, 'PRECISION'),
                                    precision = ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0), isAllowNull = CASE WHEN a.isnullable = 1 THEN 1
                                                                                                        ELSE 0
                                                                                                   END, defaultValue =REPLACE(REPLACE(ISNULL(e.text, ''),'(',''),')',''), Description = ISNULL(g.[value], '')
                            FROM    syscolumns a
                                    LEFT JOIN systypes b ON a.xusertype = b.xusertype
                                    INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.name <> 'dtproperties'
                                    LEFT JOIN syscomments e ON a.cdefault = e.id
                                    LEFT JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id
                                    LEFT JOIN sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0
                            WHERE   d.name = @tablename --如果只查询指定表,加上此条件 
                            ORDER BY a.id, a.colorder;";
            DataSet ds  = new DataSet();

            DataCommon.DataBaseConnectionString = sqlconnection;
            List <DbParameter> listParam = new List <DbParameter>();

            listParam.Add(new SqlParameter()
            {
                DbType = DbType.String, ParameterName = "@tablename", SqlValue = tablename, Direction = ParameterDirection.Input, Size = 50
            });
            DataCommon.Fill(sqlconnection, sql, CommandType.Text, ds, listParam, FrameWork.Core.FrameData.DataBaseType.SqlServer, "tableschema");
            if (ds.Tables.Count == 0)
            {
                return(null);
            }
            return(ds.Tables["tableschema"]);
        }
Exemple #2
0
        /// <summary>
        /// 获取数据库表列表
        /// </summary>
        /// <param name="tablename"></param>
        /// <param name="sqlconnection"></param>
        /// <returns></returns>
        public static DataTable GetTableList(string tablename, string sqlconnection)
        {
            string  sql = @"
                        SELECT DISTINCT
                                d.name,  f.value AS [Description]
                        FROM    syscolumns a
                                LEFT JOIN systypes b ON a.xusertype = b.xusertype
                                INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.name  <>'dtproperties'
                                LEFT JOIN syscomments e ON a.cdefault = e.id
                                LEFT JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id
                                LEFT JOIN sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0
	                        WHERE  ISNULL(@tablename,'')='' OR d.name LIKE @tablename+'%' ORDER BY d.name"    ;
            DataSet ds  = new DataSet();

            DataCommon.DataBaseConnectionString = sqlconnection;
            List <DbParameter> listParam = new List <DbParameter>();

            listParam.Add(new SqlParameter()
            {
                DbType = DbType.String, ParameterName = "@tablename", SqlValue = tablename, Direction = ParameterDirection.Input, Size = 50
            });
            DataCommon.Fill(sqlconnection, sql, CommandType.Text, ds, listParam, FrameWork.Core.FrameData.DataBaseType.SqlServer, "tablesList");
            return(ds.Tables["tablesList"]);
        }