c# 下 根据Datatable的结构动态创建表

博主比较懒,使用一次以上的功能就绝对要封装成类或方法。

不想说话,上代码,根据DataTable的结构动态创建数据库对应的表。

/// 
        /// 根据DataTable,生成建表语句
        /// 
        /// 
        /// 
        /// 
        private string GetCreateTableSql(DataTable table, string tableName)
        {
            var colList = new List();

            //遍历列,获取字段属性
            foreach (DataColumn col in table.Columns)
            {
                var ty = TypeHelper.ConvertTypeToSqlDbType(col.DataType) + "";
                var isautoIn = col.AutoIncrement ? $"IDENTITY({col.AutoIncrementSeed},{col.AutoIncrementStep})" : "";
                var isnull = col.AllowDBNull ? "NULL" : "NOT NULL";
                var colStr = $"[{col.ColumnName}] [{ty}] {isautoIn} {isnull} ";
                colList.Add(colStr);
            }
            //拼接建表sql
            var sql = string.Format(@" if object_id('{0}') is not null begin truncate table {0} drop table {0} end CREATE TABLE {0}(
                     {1}
                    ) ON [PRIMARY];
                    ", tableName, string.Join(",", colList));
            return sql;
        }

 

你可能感兴趣的:(c#,sql)