zoukankan      html  css  js  c++  java
  • MSSQL获取表结构通用方法

     1 #region 通用方法
     2 
     3         ///<summary>
     4         ///读取错误信息
     5         ///</summary>
     6         public string ErrorMessage { get; private set; }
     7 
     8         /// <summary>
     9         /// 获取数据库中的表清单
    10         /// </summary>
    11         private DataTable GetTableNameList
    12         {
    13             get { return SqlDatabase.OperateData("SELECT [Name] FROM SysObjects Where XType='U' and name <> N'sysdiagrams'  ORDER BY [Name]"); }
    14         }
    15 
    16         /// <summary>
    17         /// 获取数据库中的表清单和字段清单
    18         /// </summary>
    19         private DataTable GetTableNameAndColumnList
    20         {
    21             get
    22             {
    23                 //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    24                 var strSql = new StringBuilder();
    25                 strSql.Append("SELECT     [Name],STUFF((SELECT ',' + CAST( '['+COLUMN_NAME+']' as varchar(50)) ");
    26                 strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS  where (TABLE_NAME = [Name])  FOR XML PATH('')),1,1,'') as ColumnList ");
    27                 strSql.Append("FROM         SysObjects ");
    28                 strSql.Append("Where XType='U' and name <> N'sysdiagrams' ORDER BY [Name] ");
    29                 return SqlDatabase.OperateData(strSql.ToString());
    30             }
    31         }
    32 
    33         /// <summary>
    34         /// 获取数据库中的表清单和字段清单
    35         /// </summary>
    36         /// <param name="strTableList">表清单</param>
    37         /// <returns></returns>
    38         private DataTable GetTableNameAndColumnsToInsert(string strTableList)
    39         {
    40 
    41                 //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    42                 var strSql = new StringBuilder();
    43                 strSql.Append("SELECT     [Name],STUFF((SELECT ',' + CAST( '['+COLUMN_NAME+']' as varchar(200)) ");
    44                 strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS  where (TABLE_NAME = [Name])  FOR XML PATH('')),1,1,'') as ColumnList ");
    45                 strSql.Append("FROM         SysObjects ");
    46                 strSql.Append(string.Format("Where XType='U' and [Name] <> N'sysdiagrams' and ([Name] in ({0}) ) ORDER BY [Name] ", strTableList));
    47                 return SqlDatabase.OperateData(strSql.ToString());
    48             
    49         }
    50 
    51         /// <summary>
    52         /// 获取数据库中的表清单和字段清单
    53         /// </summary>
    54         /// <param name="strTableList">表清单</param>
    55         /// <returns></returns>
    56         private DataTable GetTableNameAndColumnsToUpdate(string strTableList)
    57         {
    58 
    59             //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    60             var strSql = new StringBuilder();
    61             strSql.Append("SELECT     [Name],STUFF((SELECT ',' + CAST( '['+COLUMN_NAME+']' + '=SourceTable_1.'+'['+COLUMN_NAME+']'  as varchar(200)) "); 
    62             strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS  where (TABLE_NAME = [Name]) and COLUMN_NAME <> 'Id'  FOR XML PATH('')),1,1,'') as ColumnList "); 
    63             strSql.Append("FROM         SysObjects ");
    64             strSql.Append(string.Format("Where XType='U' and [Name] <> N'sysdiagrams' and ([Name] in ({0}) ) ORDER BY [Name] ", strTableList));
    65             return SqlDatabase.OperateData(strSql.ToString());
    66 
    67         }
    68 
    69         /// <summary>
    70         /// 获取指定表的列信息
    71         /// </summary>
    72         /// <param name="strTableName">表名</param>
    73         /// <returns></returns>
    74         private DataTable GetTableColumns(string strTableName)
    75         {
    76             //频繁进行字符串拼接操作的时候推荐使用StringBuilder,因为它提供更优秀的性能
    77             var strSql = new StringBuilder();
    78             strSql.Append("SELECT     COLUMN_NAME, ORDINAL_POSITION, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH ");
    79             strSql.Append("FROM         INFORMATION_SCHEMA.COLUMNS ");
    80             strSql.Append("WHERE     (TABLE_NAME = @TableName) ");
    81             var htCols = new Hashtable
    82                              {
    83                                  //表名称
    84                                  {"TableName", strTableName}
    85                              };
    86             return SqlDatabase.OperateData(CommandType.Text, strSql.ToString(), htCols);
    87 
    88         }
    89 
    90         #endregion
  • 相关阅读:
    使用viewpager实现QQ界面切换效果
    实例教程十一:访问通信录中的联系人和添加联系人
    实例教程十四:视频刻录(调用前置摄像头)
    实例教程十二:为应用添加多个Activity与参数传递
    【30篇突击 android】源码统计八
    GIF动画 汇总帖子+实例
    Android ProgressBar 几乎全部的用法
    实例教程十三:拍照
    android NDK 知识汇总
    【原创】oracle中大数据量更新的测试
  • 原文地址:https://www.cnblogs.com/prolion/p/3171700.html
Copyright © 2011-2022 走看看