Beispiel #1
0
        /// <summary>
        /// 获取所有数据库表名
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public List <string> GetTableNames(SqlSugarClient db)
        {
            var tableNameList = db.SqlQuery <string>("select name from sysobjects where xtype in ('U','V') ").ToList();

            for (int i = 0; i < tableNameList.Count; i++)
            {
                var tableName = tableNameList[i];
                tableNameList[i] = db.GetClassTypeByTableName(tableName);
            }
            return(tableNameList);
        }
        /// <summary>
        /// 获取所有数据库表名
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public List <string> GetTableNames(SqlSugarClient db)
        {
            var isLog = db.IsEnableLogEvent;

            db.IsEnableLogEvent = false;
            string sql           = SqlSugarTool.GetCreateClassSql(null);
            var    tableNameList = db.SqlQuery <string>(sql).ToList();

            for (int i = 0; i < tableNameList.Count; i++)
            {
                var tableName = tableNameList[i];
                tableNameList[i] = db.GetClassTypeByTableName(tableName);
            }
            db.IsEnableLogEvent = isLog;
            return(tableNameList);
        }
        /// <summary>
        /// 获取Schema和表名的集合
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        internal static List <KeyValue> GetSchemaList(SqlSugarClient db)
        {
            var cm = CacheManager <List <KeyValue> > .GetInstance();

            string cacheKey = "SqlSugarTool.GetSchemaList";

            if (cm.ContainsKey(cacheKey))
            {
                return(cm[cacheKey]);
            }
            else
            {
                var reval = db.SqlQuery <KeyValue>(@"select  s.name as [Key],t.name as [Value] from sys.sysobjects t , sys.schemas s where t.xtype in ('U','V') and t.uid = s.schema_id");
                cm.Add(cacheKey, reval, cm.Day);
                return(reval);
            }
        }
        /// <summary>
        /// 根据表名获取列名
        /// </summary>
        /// <param name="db"></param>
        /// <param name="tableName"></param>
        /// <returns></returns>
        internal static List <string> GetColumnsByTableName(SqlSugarClient db, string tableName)
        {
            string key = "GetColumnNamesByTableName" + tableName;
            var    cm  = CacheManager <List <string> > .GetInstance();

            if (cm.ContainsKey(key))
            {
                return(cm[key]);
            }
            else
            {
                var isLog = db.IsEnableLogEvent;
                db.IsEnableLogEvent = false;
                string sql   = " SHOW columns FROM " + tableName.GetTranslationSqlName();
                var    reval = db.SqlQuery <string>(sql);
                db.IsEnableLogEvent = isLog;
                cm.Add(key, reval, cm.Day);
                return(reval);
            }
        }
Beispiel #5
0
        /// <summary>
        /// 获取所有需要生成多语言的视图名称
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        internal static List <string> GetLanguageViewNameList(SqlSugarClient db)
        {
            string key = "LanguageHelper.GetViewNameList";
            var    cm  = CacheManager <List <string> > .GetInstance();

            if (cm.ContainsKey(key))
            {
                return(cm[key]);
            }
            else
            {
                var list = db.SqlQuery <string>(@"
	            select a.name from sys.objects a 
	            JOIN sys.sql_modules b on a.[object_id]=b.[object_id]
	            where [type]='v' 
		        and b.[definition] like '%"         + db.Language.ReplaceViewStringKey + @"%'
		        and a.name not like '%"         + PreSuffix + @"%'
                ").ToList();
                cm.Add(key, list, cm.Day);
                return(list);
            }
        }
Beispiel #6
0
        // 获取表结构信息
        public List <PubModel.DataTableMap> GetTableColumns(SqlSugarClient db, string tableName)
        {
            string sql = @"SELECT  Sysobjects.name AS TABLE_NAME ,
								syscolumns.Id  AS TABLE_ID,
								syscolumns.name AS COLUMN_NAME ,
								systypes.name AS DATA_TYPE ,
								syscolumns.length AS CHARACTER_MAXIMUM_LENGTH ,
								sys.extended_properties.[value] AS COLUMN_DESCRIPTION ,
								syscomments.text AS COLUMN_DEFAULT ,
								syscolumns.isnullable AS IS_NULLABLE
								FROM    syscolumns
								INNER JOIN systypes ON syscolumns.xtype = systypes.xtype
								LEFT JOIN sysobjects ON syscolumns.id = sysobjects.id
								LEFT OUTER JOIN sys.extended_properties ON ( sys.extended_properties.minor_id = syscolumns.colid
																			 AND sys.extended_properties.major_id = syscolumns.id
																		   )
								LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
								WHERE   syscolumns.id IN ( SELECT   id
												   FROM     SYSOBJECTS
												   WHERE    xtype in( 'U','V') )
								AND ( systypes.name <> 'sysname' ) AND Sysobjects.name='"                                 + tableName + "'  AND systypes.name<>'geometry' AND systypes.name<>'geography'  ORDER BY syscolumns.colid";

            return(db.SqlQuery <PubModel.DataTableMap>(sql));
        }
        /// <summary>
        /// 获取表结构信息
        /// </summary>
        /// <param name="db"></param>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public List <PubModel.DataTableMap> GetTableColumns(SqlSugarClient db, string tableName)
        {
            string sql = SqlSugarTool.GetTtableColumnsInfo(tableName);

            return(db.SqlQuery <PubModel.DataTableMap>(sql));
        }