在Microsoft Office System中使用ADO.NET数据集(一)

在 Microsoft Office System 中使用 ADO.NET 数据集

.NET;ADO.NET;Microsoft Office System

Don Kiely

2004 年 3 月

适用于 :
· Microsoft® Office Word 2003
· Microsoft Office Excel 2003
· Microsoft Visual Studio® Tools for the Microsoft Office System

** 摘要 ** : 与基于 Microsoft Office 的应用程序进行数据交互是现实世界中解决方案的重要组成部分。 ADO.NET 是 Microsoft .NET Framework 中强大、灵活的数据访问层,它使各种应用程序之间数据的互用性变得更容易,更易于扩展。本文讨论如何创建 ADO.NET DataSet 对象,并在 Microsoft Office 系统中使用这些对象 , 从而在 Office 解决方案和 ADO.NET 间建立联系。

** 目录 ** ** **


导言

ADO.NET 数据访问层

在 Office 文档中使用 DataSet 中的数据

使用 Visual Studio Tools for the Microsoft Office System

结论

** 导言 ** ** **

在 Microsoft Windows ® 开发环境中 , .NET Framework 和 Microsoft ® Visual Studio ® .NET 开发工具为创建高效的应用程序 , 创建安全的应用程序建立了高标准 , 并且提供为分布式应用程序提供了固有支持 ( 硬基础 ) 。 .NET-based tools make Windows programming fun again.

虽然微软逐渐将 .NET Framework 融合到她的各种产品中 , 但是 , 在 Microsoft Office 中并无对 .NET 的直接支持。 Microsoft Office System 利用 .NET Framework 实现了许多扩展和新功能,但是它的核心对象仍然是基于 COM 的 —— 多年来一直如此。

但是 , 那并不意味着 Microsoft Office System 和基于 .NET 的开发相互矛盾 , 不可协作。 相反 , Microsoft 已经在 Microsoft Office System 建立了 COM interop, 这使得合并这两个平台的功能变得非常容易。 其中最令人激动的一个工具就是 Microsoft Visual Studio Tools for the Microsoft Office System ,该工具使你可以编写在 Microsoft Office Excel 2003 或 Microsoft Office Word 2003 文档中执行的托管代码。

一个常见的编程任务就是从数据库中读取数据并在 Office 文档中使用这些数据。 Microsoft Visual Basic ® for Applications (VBA) 很早就已经支持多种数据访问技术,包括 Data Access Object (DAO), 以及最近的 Microsoft ActiveX ® Data Objects (ADO) 。 虽然这完全满足了很多编程需求,但是, ADO.NET 在访问数据库上有了巨大的改进,特别是当创建断开式数据集合和与结合 XML 时。经常在 Microsoft Office System 文档中使用的 ADO.NET 对象是 ** DataSet ** , DataSet 可以包含来自一个数据库的多个数据集。 但是没有一种简单的方法在VBA应用程序中使用 ADO.NET 对象,你不得不编写 .NET 兼容的代码来创建一个对象并将它插入到 Office 文档中。

** ADO.NET ** ** 数据访问层 ** ** **

ADO.NET 是 .NET Framework 的数据访问部分 , 它包含在 ** System.Data ** 命名空间。 它提供一套丰富的对象,用于对几乎任何种类的数据存储的连接式和断开式访问,当然包括关系型数据库。当使用 ** DataSets ** 时,你通常需要使用 ** Connection ** , Command , Data Adapter , 和 DataSet 对象。 这看起来需要很多工作,但是它们非常易于使用,并且你常常能够回避精确的创建一个或多个这些对象。

当用数据填充一个 ** DataSet ** 时 , 通常要使用 ** SqlConnection ** 和 ** SqlDataAdaptor ** 对象。 ** SqlConnection ** 对象包含数据库连接的基本信息。 ** SqlCommand ** 对象结合连接对象与针对数据库执行的特殊指令,这些指令包括 SQL 语句、存储过程名和任何必须的参数。 ** SqlDataAdapter ** 使用连接信息连接到数据库,执行命令并返回数据,最后将数据放置在一个 ** DataSet ** 中。 注意到所得到的 ** DataSet ** 并没有数据从何而来的任何信息,它可能来自 Microsoft SQL Server 或任何其他数据源,甚至可能是在内存中匆匆创建的。

读取数据时 , 如果你具有一个数据库的持久连接 , 你也可以使用 ** SqlDataReader ** 对象。 这个对象提供对数据库的快速的只进、只读访问,是一种迅速从数据库中获得数据的方式。 ** SqlDataReader ** 只适用于数据库提供数据的情况,因为它与数据库保持连接直到数据库连接关闭或者读取完毕最后一个数据。

任何使用 ADO.NET DataSets 的数据访问必须用到两套对象 : 一套针对于你的代码所访问的数据源 , 另一套容纳数据 , 但其中不包含与数据源相关的任何信息。例如,为了使用 Microsoft SQL Server 2000 中的 Northwind 数据库,你需要在 ADO.NET 和 .NET Framework 中使用 ** System.Data.SqlClient ** 命名空间以便于有效的访问数据。 ** System.Data.SqlClient ** 命名空间中的对象只能工作在 SQL 7.0 及更新版本下,如果你要使用其他后台数据库,你必须使用不同但是功能等效的对象,例如那些用于 OLE DB, Oracle, 或 ODBC 数据库的对象。

让我们看看如何在数据访问层使用 ADO.NET 对象 , 从而建立在 Office 应用程序中使用它们的基础。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus