65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 和 SQL Server 数据库导出向导

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.98/5 (59投票s)

2010年5月20日

CPOL

4分钟阅读

viewsIcon

162510

downloadIcon

8123

一个用于 ASP.NET 将数据库对象导出为 CSV、TXT、HTML、XML 或 SQL 的逐步向导

目录

引言

通过本文,我想分享一个简单但有用的工具:ExportWizard,一个数据库导出的分步向导。

它引导用户完成几个简单的步骤,以选择数据库对象(表、视图或查询)、选择列,并将数据导出为任何标准格式:CSV、HTML、XML 或 SQL。

用户界面:3 个简单步骤

从数据库导出的任务可以分解如下:

  1. 选择源数据库对象(表、视图或查询)
  2. 选择要在导出中包含的列
  3. 选择导出格式(CSV、HTML、XML、SQL...)

这些简单的顺序任务非常适合分步向导。

本文讨论的实现是一个 Web 控件,因此下面的屏幕截图显示在 Web 浏览器中。它也可以编码为桌面应用程序,具有相同的基本元素和相同的步骤排列。

步骤 1:选择数据源

选择要从中导出数据的表、视图或 SQL 查询。

步骤 2:选择要包含的列

选择要在导出和排序选项中包含的列。

步骤 3:选择导出格式和选项

最后一步是选择导出格式和选项。

每种格式有不同的选项(使用少量 JavaScript 在不发布页面的情况下动态切换选项面板)

CSV、TXT、Excel
Options: Header and Separator

XML

Options: Root element, attributes/elements format

HTML
Options: Colors

SQL

Options: Transaction, identity

使用 Web 控件

该代码被封装为一个 Web 控件(用 VB.NET 编写),适用于 ASP.NET 和 SQL Server。它与 Visual Studio 及其 WYSIWYG 设计器完全集成。只需拖放即可将控件嵌入您的页面。

Web 控件属性

属性 描述
DesignStep
(仅设计时)
使您能够在设计时以 WYSIWYG 方式显示任何步骤。
DHTMLenabled 确定用户是否可以显示和隐藏选项。
HeaderStep1
HeaderStep2
HeaderStep3 

每个步骤的介绍性文字。建议值:
HeaderStep1 ="请选择要导出的数据源。"
HeaderStep2 ="选择要导出的列。"
HeaderStep3 = "选择输出和格式选项。"

SourceObject 用于限制要从中导出的表或视图可能性的属性。逗号分隔的数据库对象列表。
SourceColumns 默认选定的逗号分隔的列列表。
示例:SourceColumns="ID,name,title"
SqlConnection 数据库的连接字符串,例如:
"SERVER=(local);DATABASE=EvoDemo;UID=john;PWD=secret;"。
StepIndex
(只读)

当前显示的步骤的索引。

  1. step1_Source
  2. step2_SourceDetails
  3. step3_OutputType
  4. step4_Export

在设计时,DesignStep 允许用户查看每个步骤。

事件

ExportWizard 提供一个事件 Show

事件 描述
显示

在显示时触发。事件参数是向导当前的 Title StepIndex

ShowEventArgs: Title As String, StepIndex As Integer

方法

GetExport: 将数据库导出返回为 String
示例:GetExport("Contact", "Firstname, Lastname, PhoneW, email", "HTML")

参数 描述
表格

要从中导出的表或视图。

Columns 要导出的列列表。
可能的值:Columns="ID,name" 或 Columns="*"
ExportType

要导出的格式。
可能的值:CSV、HTML、SQL、TXT 或 XML。

此外,System.Web.UI.WebControls.WebControl 的通用属性也适用。

将控件嵌入页面

要嵌入控件,请将控件 DLL 复制到 Web 应用程序的bin 目录,并在页面中添加两行代码。第一行注册控件的标签前缀(放在页面顶部)

<%@ Register TagPrefix = "EVOL" Namespace = "Evolutility.ExportWizard" 
	Assembly = "Evolutility.ExportWizard" %> 

第二行嵌入控件。将该行放在页面中的任何位置

<EVOL:ExportWizard id= "ExportWizard1" runat = "server" 
	SqlConnection = "Server=(local);Database=Demo;Trusted_Connection=yes;" 	 
</EVOL:ExportWizard>

关于代码

许多开发人员或数据库管理员之前都编写过从数据库导出的代码(如果您正在阅读本文,您很可能也写过)。这个 Web 控件是用 VB.NET 编写的,不打算扩展,但它可以处理小型数据库表。

要用表和视图列表或列列表填充下拉列表,我使用的技术是直接查询 SQL Server 系统表。

  • sysobjects(包含表、视图、存储过程和触发器的名称)
  • syscolumns(包含列和存储过程参数名称)
  • systypes(包含 Enterprise Manager 中显示的列类型)

数据库用户必须有权访问这些系统表。这些表还可以用于 生成数据库设计文档,如另一篇文章中所述。

注释

这个 Web 控件是一个独立的 Web 控件。我还使用了一个修改版本(用 C# 编写),它集成到 Evolutility CRUD framework 中,该框架可在 Get Evolutility at SourceForge.net 上获得。

历史

  • 2010 年 5 月 19 日:初始帖子
© . All rights reserved.