CreateDoc_small.gif

Introduction

This post presents a tool that creates a Word document that contains the schema information of the tables in a SQL server database. It uses SoftArtisans' OfficeWriter. In SQL server, descriptions can be given to columns. Therefore, the documentation can be kept on the SQL server, and with this tool, it may be exported to a Word document.

Background

The documentation of the database is a delivery item in IT projects. This tool creates this documentation automatically, provided the description of the columns is filled-in in the SQL server database.

Using the Code

Compile the project and run it. A form appears, where you may edit the connection string, and the paths to the input and output files. A sample input file is already provided. Press the button Refresh and the list of tables in the database should appear in the grid. Select the tables for which you want the documentation to be created, and press the button Create Doc. The tool will read the InputFile, append the documentation of the selected tables, and will write the resulting file to OutputFile. Upon finishing, the OutputFile is opened. Unfortunately, you must have SoftArtisan's OfficeWriter installed.

Form1 has a PropertyGrid to which the project settings are bound. This enables the user to change the connection string, and the paths to the input and output files. Form1 has also a DataGridView to which a dataset is bound. The project has the typed dataset TablesData, which is filled with the list of all tables in the database (except the ones containing the word audit). Upon pressing the button Create Doc, the code loops through all tables and fills the typed dataset PropertiesData with the column information of each table (method FillTableInfo). A new paragraph of style Heading 1 is created for each table. Rows in PropertiesData that have the field ColumnName empty, are considered table documentation and are written first to the Word document (method WordDocDescriptionFill). Then a table is appended, some formatting is applied (method WordTableFormat), the header row is filled-in (method WordTableHeaderFill) and finally the body of the table is filled-in with the column information in PropertiesData dataset (method WordTableBodyFill).

Points of Interest

It might be possible to use Microsoft Word to do this, but I had already used OfficeWriter in another project.

History

  • 27th June, 2011: Initial post
推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"