sqlsugar查看表结构并导出word文档
前提
SqlSugar 5.1.4
MiniWord 0.9.2
使用
using MiniSoftware;
using SqlSugar;namespace ConsoleApp5
{internal class Program{/// <summary>/// 导出数据库表结构和字段信息/// https://www.donet5.com/Home/Doc?typeId=1203/// </summary>/// <param name="args"></param>static void Main(string[] args){var connectionString = "Server=127.0.0.1;uid=sa;pwd=12345678;Database=数据库名;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;";var db = new SqlSugarClient(new ConnectionConfig(){DbType = DbType.SqlServer,ConnectionString = connectionString,IsAutoCloseConnection = true});// 获取所有表名及备注var tables = db.DbMaintenance.GetTableInfoList(false);Console.WriteLine($"总共有{tables.Count}张表");var totalData = new Dictionary<string, object>();var tableDataList = new List<TableModel>();int index = 0;foreach (var table in tables){//Console.WriteLine($"表名:{table.Name},备注:{table.Description}");var tableData = new TableModel(){Name = table.Name,Description = table.Description};var columns = db.DbMaintenance.GetColumnInfosByTableName(table.Name, false);index = 0;foreach (var column in columns){index += 1;var tableColumnData = new ColumnModel(){Idx = index,CName = column.DbColumnName,CDesc = column.ColumnDescription,CType = column.DataType};tableData.Columns.Add(tableColumnData);//Console.WriteLine($"\t字段名:{column.DbColumnName},类型:{column.DataType},备注:{column.ColumnDescription}");}tableDataList.Add(tableData);}totalData.Add("tables", tableDataList);Console.WriteLine("数据查询完毕");var basePath = AppDomain.CurrentDomain.BaseDirectory;var resultName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".docx";var outputPath = Path.Combine(basePath, resultName);var intputPath = Path.Combine(basePath, "009.docx");MiniWord.SaveAsByTemplate(outputPath, intputPath, totalData);Console.WriteLine("完成");Console.ReadKey();}}public class TableModel{/// <summary>/// 表名称/// </summary>public string Name { get; set; } = string.Empty;/// <summary>/// 表描述/// </summary>public string Description { get; set; } = string.Empty;/// <summary>/// 表中的列字段/// </summary>public List<ColumnModel> Columns { get; set; } = new List<ColumnModel>();}public class ColumnModel{/// <summary>/// 索引/// </summary>public int Idx { get; set; } = 0;/// <summary>/// 列名称/// </summary>public string CName { get; set; } = string.Empty;/// <summary>/// 列名称/// </summary>public string CDesc { get; set; } = string.Empty;/// <summary>/// 列类型/// </summary>public string CType { get; set; } = string.Empty;}
}
模板
结果