Table of Contents
With this article, I would like to share a simple but useful little tool: ExportWizard, a Step Wizard for Database Export.
It guides users through a few simple steps to choose a database object (table, view, or query), select columns, and export the data in any of the standard formats CSV, HTML, XML, or SQL.
The UI: 3 Simple Steps
The task of exporting from a database can be broken down as follows:
- Select a source database object (table, view, or query)
- Select columns to include in the export
- Select the export format (CSV, HTML, XML, SQL...)
These simple sequential tasks are a good fit for a step wizard.
The implementation discussed in this article is a web control, so the screenshots below are inside a web browser. It could be coded as a desktop application as well with the same basic elements and the same steps arrangement.
Step 1: Choose Data Source
Select table, view or SQL query to export data from.
Step 2: Select Columns to Include
Select columns to include in the export and sorting options.
Step 3: Choose Export Format and Options
This last step is for selecting the export format and options.
|CSV, TXT, Excel|
Using the Web Control
The code is encapsulated as a web control (written in VB.NET) for ASP.NET and SQL Server. It is fully integrated with Visual Studio and its WYSIWYG designer. Just drag & drop to embed the control into your page.
Web Control Properties
(Design Time only)
|Enables you to get a WYSIWYG display of any step during design time.|
|Determines if user can show and hide options.|
HeaderStep1<br />HeaderStep2<br />HeaderStep3
Introductory text for each step. Suggested values:
HeaderStep1="Please, select the data source to export."
HeaderStep2="Select columns to exports."
HeaderStep3= "Select Output and format options."
|Property used to limit the possible tables or views from which to export. Comma-separated list of database objects. |
|Comma-separated list of columns to be selected by default. |
|Connection string to the database, for example:|
Index of the step currently displayed.
At design time,
DesignStep allows users to view each step.
ExportWizard provides one event
Triggered on display. Events arguments are the wizard current
GetExport: Returns the database export as a
Table or View from which to export.
|List of columns to export.|
Format in which to export.
Possible values: CSV, HTML, SQL, TXT, or XML.
In addition, standard properties inherited from
Embedding the Control into the Page
To embed the control, copy the control DLL into the bin directory of your web application and add two lines of code to your page. The first line registers the control tag prefix (place this at the top of the page):
<%@ Register TagPrefix = "EVOL" Namespace = "Evolutility.ExportWizard"
Assembly = "Evolutility.ExportWizard" %>
The second line embeds the control. Place the line anywhere within the page:
<EVOL:ExportWizard id= "ExportWizard1" runat = "server"
SqlConnection = "Server=(local);Database=Demo;Trusted_Connection=yes;"
About the Code
Many developers or database administrators have written code to export from a database before (very likely you too if you are reading this article). This web control is written in VB.NET and is not intended to scale, but it does the job with small database tables.
To populate the dropdowns with the list of tables and views, or the list of columns, the technique I used was to query SQL Server system tables directly.
- sysobjects (contains names of tables, views, stored procedures, and triggers)
- syscolumns (contains column and stored procedure parameter names)
- systypes (contains column types as displayed in Enterprise Manager)
The database user must have access to these system tables. These tables can also be used to generate database design documents as discussed in another article.
This web control is a stand-alone Web control. I have also used a modified version of it (in C#) integrated as a feature of Evolutility CRUD framework available on .
- 19th May, 2010: Initial post