第100篇博文纪念 | C# 根据数据库表结构生成DOC数据库文档(4)

简介:

private const string connstr = "Data Source=SERVER;Initial Catalog=Test;User ID=sa;Password=sa";
    
private readonly SqlSchemaProvider provider = new SqlSchemaProvider(connstr);

    
protected void Page_Load(object sender, EventArgs e)
    {
        
if (!IsPostBack)
        {
            
this.rptData.DataSource = provider.GetTables();
            
this.rptData.DataBind();
        }
    }


    
/// <summary>
    
/// 
    
/// </summary>
    
/// <param name="obj"></param>
    
/// <returns></returns>
    public string OutputNullable(bool nullable)
    {
        
return nullable ? "<span style='font-family:宋体'>是</span>" : "<span style='font-family: 宋体; color: red'>否</span>";
    }

    
public string ColumnInfo(string tablename)
    {
        StringBuilder result 
= new StringBuilder();
        IList
<ColumnInfo> columns = provider.GetTableColumns(tablename);

        
foreach (ColumnInfo column in columns)
        {
            result.AppendFormat(
@"<tr>
  <td width=103 valign=top style='width:77.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>{0}</span></p>
  </td>
  <td width=84 valign=top style='width:63.0pt;border-top:none;border-left:none;
  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>{1}</span></p>
  </td>
  <td width=51 valign=top style='width:38.25pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>{2}</span></p>
  </td>
  <td width=71 valign=top style='width:53.55pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'>{3}</p>
  </td>
  <td width=71 valign=top style='width:53.55pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>{4}</span></p>
  </td>
  <td width=95 valign=top style='width:71.3pt;border-top:none;border-left:none;
  border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>{5}</span></p>
  </td>
  <td width=92 valign=top style='width:69.05pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>{6}</span></p>
  </td>
 </tr>
", column.Name, column.DataType, column.Length, OutputNullable(column.Nullable), 
                OutputValue(column.DefaultValue),
                OutputIdentity(column.Identity, column.IdentitySeed, column.IdentityIncrement),
                OutputValue(column.ColumnDesc));
        }

        
return result.ToString();
    }

    
//<span style='font-family: 宋体'>自动增长</span><span lang="EN-US">(1) </span><span style='font-family: 宋体'>
    
//                        不用于复制</span>

    
/// <summary>
    
/// 输出其他
    
/// </summary>
    
/// <param name="obj"></param>
    
/// <returns></returns>
    public string OutputIdentity(int identity, int seed, int increment)
    {
        
if (identity == 1 && seed == 1 && increment == 1)
            
return "<span style='font-family: 宋体'>自动增长</span><span lang='EN-US'>(1) </span>";
        
else
            
return "&nbsp;";
    }

    
private string OutputValue(string obj)
    {
        
if (string.IsNullOrEmpty(obj))
            
return "&nbsp;";
        
else
            
return obj;
    }

}
    代码说明:
这里是嵌套输出的表格,注意处理为空的情况,否则表格可能不完整,大家可以根据实际情况进行修改。

 

 

大家直接把页面上的表格全选然后复制到Word里面即可,这里注意了,我试过直接另存为word,但是版式不对,但是直接复制到Word里面是可以的。



本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/584170,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 数据库
工作流Flowable 数据库表结构说明、Flowable 数据字典说明
工作流Flowable 数据库表结构说明、Flowable 数据字典说明
73 0
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
65 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
1月前
|
存储 关系型数据库 数据库
什么是数据库表结构
什么是数据库表结构
|
1天前
|
存储 SQL 数据库
数据库库表结构设计:原理、实例与最佳实践
数据库库表结构设计:原理、实例与最佳实践
9 0
|
12天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
35 7
|
29天前
|
编解码 缓存 数据库
【软件设计师备考 专题 】编写内部设计文档:屏幕设计和数据库设计
【软件设计师备考 专题 】编写内部设计文档:屏幕设计和数据库设计
62 0
|
30天前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
1月前
|
Oracle 关系型数据库 MySQL
一款好用的数据库表结构文档生成工具
一款好用的数据库表结构文档生成工具
|
1月前
|
SQL 存储 关系型数据库
C# .NET面试系列十:数据库概念知识
#### 1. 为什么要一定要设置主键? 设置主键是数据库设计中的一个重要概念,有几个主要原因: 1、唯一性 ```c# 主键必须保证表中的每一行都有唯一的标识。这样可以避免数据冗余和不一致性。如果没有主键或者主键不唯一,就可能出现数据混乱或错误。 ``` 2、查询性能 ```c# 数据库系统通常会使用主键来加速数据检索。主键通常会被索引,这样可以更快速地找到特定行的数据,提高查询效率。 ``` 3、关联性 ```c# 主键常常用于建立表与表之间的关系。在关系数据库中,一个表的主键通常与其他表中的外键建立关联,这种关系对于数据的一致性和完整性非常重要。 ``` 4、数据完
131 1
C# .NET面试系列十:数据库概念知识
|
1月前
|
Java 关系型数据库 MySQL
基于springboot+vue网吧管理系统(程序+数据库+文档)
基于springboot+vue网吧管理系统(程序+数据库+文档)