分享
 
 
 

Asp.net中创建和使用Ado.net

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在商业应用程序中最重要的组件是数据,无论是在线的商务应用程序、公司的企业软件还是小型公司的会计应用程序无不如此:通过一个通用的线程与数据打交道,即都必须实现快速、有效、可靠的方式存储、检索和处理数据。

然而,一直一来令人棘手的问题是这些数据文件常以不同的格式存储,这就需要开发者学会用多种不同的方式来处理完全一样的事情。Microsoft等诸多数据提供者力求实现数据访问格式的标准化。

从Odbc的出现到Dao、Rdo、Oledb、Ado的实现,可以说标准化的进程逐步实现。特别是Ado的出现很好的实现了通用数据访问的模式,致使很多人认为,每隔两年学习一种新的数据访问对象模型的年代已经过去了。但是通过Internet,我们发现这种想法是错误的。

一、ADO.NET 的设计目标

随着应用程序开发的发展演变,新的应用程序已基于 Web 应用程序模型越来越松散地耦合。如今,越来越多的应用程序使用 XML 来编码要通过网络连接传递的数据。Web 应用程序将 HTTP 用作在层间进行通信的结构,因此它们必须显式处理请求之间的状态维护。这一新模型大大不同于连接、紧耦合的编程风格,此风格曾是客户端/服务器时代的标志。在此编程风格中,连接会在程序的整个生存期中保持打开,而不需要对状态进行特殊处理。

设计 ADO.NET 的目的是为了满足这一新编程模型的以下要求:具有断开式数据结构;能够与 XML 紧密集成;具有能够组合来自多个、不同数据源的数据的通用数据表示形式;在创建 ADO.NET 时,Microsoft 具有以下设计目标。

利用当前的 ADO 知识

ADO.NET 的设计满足了当今应用程序开发模型的多种要求。同时,该编程模型尽可能地与 ADO 保持一致,这使当今的 ADO 开发人员不必从头开始学习全新的数据访问技术。ADO.NET 是 .NET Framework 的固有部分,因此对于 ADO 程序员决不是完全陌生的。

ADO.NET 与 ADO 共存。虽然大多数基于 .NET 的新应用程序将使用 ADO.NET 来编写,但 .NET 程序员仍然可以通过 .NET COM 互操作性服务来使用 ADO。

支持 N 层编程模式

ADO.NET 为断开式 n 层编程环境提供了一流的支持,许多新的应用程序都是为该环境编写的。使用断开式数据集这一概念已成为编程模型中的焦点。n 层编程的 ADO.NET 解决方案就是 DataSet。

集成 XML 支持

XML 和数据访问是紧密联系在一起的,即 XML 的全部内容都是有关数据编码的,而数据访问越来越多的内容都与 XML 有关。.NET Framework 不仅支持 Web 标准,它还是完全基于 Web 标准生成的。

XML 支持内置在 ADO.NET 中非常基本的级别上。.NET Framework 和 ADO.NET 中的 XML 类是同一结构的一部分,它们在许多不同的级别集成。您不必在数据访问服务集和它们的 XML 相应服务之间进行选择;它们的设计本来就具有从其中一个跨越到另一个的功能。

二、ADO.NET 的组件

设计 ADO.NET 组件的目的是为了从数据操作中分解出数据访问。ADO.NET 的两个核心组件会完成此任务:DataSet 和 .NET Framework 数据提供程序,后者是一组包括 Connection、Command、DataReader 和 DataAdapter 对象在内的组件。

ADO.NET DataSet 是 ADO.NET 的断开式结构的核心组件。DataSet 的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable 对象中数据的关系信息组成。

ADO.NET 结构的另一个核心元素是 .NET Framework 数据提供程序,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。Connection 对象提供与数据源的连接。Command 对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 从数据源中提供高性能的数据流。最后,DataAdapter 提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致。

可以为任何数据源编写 .NET Framework 数据提供程序。.NET Framework 提供了四个 .NET Framework 数据提供程序:SQL Server .NET Framework 数据提供程序、OLE DB .NET Framework 数据提供程序、ODBC .NET Framework 数据提供程序和 Oracle .NET Framework 数据提供程序。

下图阐释了 ADO.NET 结构的组件。

三、使用 ADO.NET 连接到数据源

在 ADO.NET 中,可以使用 Connection 对象来连接到指定的数据源。若要连接到 Microsoft SQL Server 7.0 版或更高版本,请使用 SQL Server .NET Framework 数据提供程序的 SqlConnection 对象。若要使用用于 SQL Server 的 OLE DB 提供程序 (SQLOLEDB) 连接到 OLE DB 数据源或者连接到 Microsoft SQL Server 6.x 版或较早版本,请使用 OLE DB .NET Framework 数据提供程序的 OleDbConnection 对象。若要连接到 ODBC 数据源,请使用 ODBC .NET Framework 数据提供程序的 OdbcConnection 对象。若要连接到 Oracle 数据源,请使用 Oracle .NET Framework 数据提供程序的 OracleConnection 对象。

1、 使用 ADO.NET 连接到 SQL Server

SQL Server .NET Framework 数据提供程序使用 SqlConnection 对象提供与 Microsoft SQL Server 7.0 版或更高版本的连接。

SQL Server .NET Framework 数据提供程序支持类似于 OLE DB (ADO) 连接字符串格式的连接字符串格式。有关有效的字符串格式名称和值,请参见附表1

以下代码示例演示如何创建和打开与 SQL Server(版本 7.0 或更高版本)数据库的连接。

[Visual Basic]

Dim myConn As SqlConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

myConn.Open()

[C#]

SqlConnection nwindConn = new SqlConnection("Data Source=localhost; Integrated Security=SSPI;" +

"Initial Catalog=northwind");

nwindConn.Open();

建议使用完 Connection 后始终将其关闭。这可以使用 Connection 对象的 Close 或 Dispose 方法来实现。

集成安全性和 ASP.NET

SQL Server 集成安全性(也称为受信任的连接)是连接到 SQL Server 的最安全的方法,因为它不在连接字符串中公开用户标识和密码。建议使用该方法对连接进行身份验证。集成安全性使用正在执行的进程的当前安全标识或标记。对于桌面应用程序,安全标识或标记通常是当前登录的用户的标识。

ASP.NET 应用程序的安全标识可设置为几个不同的选项之一。若要更好地了解使用集成安全性连接到 SQL Server 时 ASP.NET 应用程序所使用的安全标识,请参见我写得Asp.net中进行安全的 ADO.NET 编码系列或者参考msdn

Name

Default

Description

名称

默认值

说明

Application Name

The name of the application, or '.Net SqlClient Data Provider' if no application name is provided.

应用程序名称

应用程序的名称,或者“.Net SqlClient Data Provider”(如果不提供应用程序名称)。

AttachDBFilename

-or-

extended properties

-or-

Initial File Name

The name of the primary file, including the full path name, of an attachable database.

The database name must be specified with the keyword 'database'.

AttachDBFilename

- 或 -

扩展属性

- 或 -

初始文件名

可连接数据库的主文件的名称,包括完整的路径名。

必须使用关键字“database”来指定数据库的名称。

Connect Timeout

-or-

Connection Timeout

15

The length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error.

连接超时设定

- 或 -

连接超时

15

在终止尝试并产生错误之前,等待与服务器的连接的时间长度(以秒为单位)。

Current Language

The SQL Server Language record name.

当前语言

SQL Server 语言记录名称。

Data Source

-or-

Server

-or-

Address

-or-

Addr

-or-

Network Address

The name or network address of the instance of SQL Server to which to connect.

数据源

- 或 -

服务器

- 或 -

地址

- 或 -

Addr

- 或 -

网络地址

要连接的 SQL Server 实例的名称或网络地址。

Encrypt

'false'

When true, SQL Server uses SSL encryption for all data sent between the client and server if the server has a certificate installed. Recognized values are true, false, yes, and no.

加密

'false'

当该值为 true 时,如果服务器端安装了证书,则 SQL Server 将对所有在客户端和服务器之间传送的数据使用 SSL 加密。可识别的值为 true、false、yes 和 no。

Initial Catalog

-or-

Database

The name of the database.

初始目录

- 或 -

数据库

数据库的名称。

&

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有