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 " ";
}
private string OutputValue(string obj)
{
if (string.IsNullOrEmpty(obj))
return " ";
else
return obj;
}
} 代码说明:
这里是嵌套输出的表格,注意处理为空的情况,否则表格可能不完整,大家可以根据实际情况进行修改。
大家直接把页面上的表格全选然后复制到Word里面即可,这里注意了,我试过直接另存为word,但是版式不对,但是直接复制到Word里面是可以的。
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/584170,如需转载请自行联系原作者