4-1 ADO.NET简介 4

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

4-1-4   ADO.NET连接数据库管理系统

1.ADO.NET连接数据库的类型及方法

ADO.NET连接数据库的内容包括:连接到数据库、执行数据库操纵命令和检索结果。可以直接处理检索到的结果,也可以将其放入DataSet对象,方便与来自多个源的数据和在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。.NET Framework数据提供程序是轻量的,它在数据源和代码之间创建了一个最小层,以便在不以功能为代价的前提下提高性能。数据提供程序的在ADO.NET中分类如图411所示:
4-11  .NET数据提供程序的在ADO.NET中的分类图
ADO.NET操控数据库的主要对象包括:Connection对象,Command对象,DataReader对象,DataAdapter对象。41概括了组成 .NET Framework 数据提供程序的四个核心对象。
4-1 .NET数据提供程序的四个核心对象表
对象
说明
Connection
建立与特定数据源的连接。所有Connection对象的基类均为 DbConnection 类。
Command
对数据源执行命令。公开Parameters,并且可以通过ConnectionTransaction的范围内执行。所有Command对象的基类均为 DbCommand 类。
DataReader
从数据源中读取只进且只读的数据流。所有DataReader对象的基类均为 DbDataReader 类。
DataAdapter
用数据源填充DataSet并解析更新。所有DataAdapter对象的基类均为 DbDataAdapter 类。
除表4-1列出的ADO.NET核心对象之外,.NET Framework 数据提供程序还包含4-2表列出的其他重要对象。
4-2 .NET数据提供程序的其他对象表
对象
说明
Transaction
使您能够在数据源的事务中登记命令。所有Transaction对象的基类均为 DbTransaction 类。
CommandBuilder
帮助器对象将自动生成DataAdapter的命令属性或将从存储过程派生参数信息并填充Command对象的Parameters集合。所有CommandBuilder对象的基类均为 DbCommandBuilder 类。
ConnectionStringBuilder
帮助器对象为创建和管理Connection对象所使用的连接字符串的内容提供了一种简单的方法。所有ConnectionStringBuilder对象的基类均为 DbConnectionStringBuilder 类。
Exception
在数据源中遇到错误时返回。对于在客户端遇到的错误,.NET Framework数据提供程序会引发.NET Framework异常。所有Exception对象的基类均为 DbException 类。
Error
公开数据源返回的警告或错误中的信息。
ClientPermission
.NET Framework数据提供程序代码访问安全属性。所有ClientPermission对象的基类均为 DBDataPermission 类。
另外,.NET数据提供程序的命名空间有四类,前面提到的这些对象在每类数据提供程序的命名空间里都有一套,并且某个对象在不同的命名空间内名称是不同的。四类命名空间分别是:SQLClientOLEDBOracleODBC,其对应的数据提供程序如表43所示:
4-3 四类.NET数据提供程序表
.NET Framework 数据提供程序
说明
SQL Server .NET Framework数据提供程序
提供对Microsoft SQL Server 7.0版或更高版本的数据访问。使用 System.Data.SqlClient 命名空间。
建议用于使用Microsoft SQL Server 7.0或更高版本的中间层应用程序,Microsoft数据库引擎(MSDE)SQL Server 7.0或更高版本的单层应用程序。
建议将用于SQL ServerOLE DB提供程序(SQLOLEDB)OLE DB .NET Framework数据提供程序一起使用。对于SQL Server 6.5版和较早版本,必须将用于SQL ServerOLE DB提供程序与OLE DB .NET Framework数据提供程序一起使用。
OLE DB .NET Framework数据提供程序
适合于使用OLE DB公开的数据源。使用 System.Data.OleDb 命名空间。
建议用于使用SQL Server 6.5或较早版本的中间层应用程序。
对于SQL Server 7.0或更高版本,建议使用SQL Server .NET Framework数据提供程序。还建议用于使用Microsoft Access数据库的单层应用程序。不建议将Access数据库用于中间层应用程序。
ODBC .NET Framework数据提供程序
适合于使用ODBC公开的数据源。使用 System.Data.Odbc 命名空间。
建议用于使用ODBC数据源的中间层和单层应用程序。
Oracle .NET Framework数据提供程序
适用于Oracle数据源。Oracle .NET Framework数据提供程序支持Oracle 客户端软件  8.1.7  版和更高版本,使用 System.Data.OracleClient 命名空间。建议用于使用Oracle数据源的中间层和单层应用程序。
每一类数据提供程序的命名空间里都有一套对象,它们是通过前缀名进行区别的,例如:SQLClient命名空间包含的对象有:SqlConnectionSqlCommandSqlDataReaderSqlDataAdapter等,OLEDB命名空间包含的对象有:OleDbConnectionOleDbCommandOleDbDataReaderOleDbDataAdapter等。

1.ADO.NET操控数据库的工作过程

.NET 数据提供程序的工作过程如图4-12所示:
4-12 .NET数据提供程序的工作过程图
在图4-12123步骤是从服务器检索数据的过程,AB是对数据库修改的过程。在这个过程中12步和B过程都是.NET数据提供程序的工作步骤。

2.ADO.NETMS SQL Server的关联

由于架构在.NET Framework 2.0基础之上的VS2005软件开发系统平台与SQL Server数据库管理信息系统都是出自微软公司旗下产品,所以VS2005SQL Server的数据通信本身就已经经过了优化,可以直接访问SQL Server而不用添加OLE DB或开放式数据库连接(ODBC)层,并具有良好的性能。
以下代码示例显示如何在应用程序中包含System.Data.SqlClient命名空间。
using System.Data.SqlClient;
 
注意
ODBC .NET Framework 数据提供程序的结构与 OLE DB .NET Framework 数据提供程序的结构相似;例如,它调入 ODBC 服务组件。

3.ADO.NETOLEDB的关联

OLEDB Microsoft的一个战略性系统级编程接口,用于管理整个组织内的数据。OLEDB 是建立在ODBC功能之上的一个开放规范,主要用于访问非关系型数据库。表44显示已经用ADO.NET进行测试的提供程序。
4-4 OLEDB数据提供程序所对应的数据源驱动程序表
驱动程序
提供程序
SQLOLEDB
用于SQL ServerMicrosoft OLE DB提供程序
MSDAORA
用于OracleMicrosoft OLE DB提供程序
Microsoft.Jet.OLEDB.4.0
用于Microsoft JetOLE DB提供程序
OLE DB .NET Framework 数据提供程序类位于System.Data.OleDb命名空间中。以下代码示例显示如何在应用程序中包含System.Data.OleDb命名空间。
using  System.Data.OleDb;
注意
不推荐将 Access (Jet) 数据库用作多线程应用程序(如 ASP.NET 应用程序)的数据源。如果必须将 Access 数据库用作 ASP.NET 应用程序的数据源,而且不能使用其他数据库(如 SQL Server MSDE ),那么请注意,连接到 Access 数据库的 ASP.NET 应用程序可能会遇到连接问题,这些问题通常与安全权限有关。

4.ADO.NETODBC的关联

DSN (数据源)是在odbc里设置的,用于连接数据库,ODBC只能用于关系型数据库。作为DSN的数据库连接可分为以前三种:
n   用户DSN:数据源对计算机来说是本地的,并且只能被当前用户访问,所以只有建立该数据源的用户才能访问该数据源,而且不能从网络上访问该数据源。
n   系统DSN:数据源对于计算机来说也是本地的,但并不是用户专用的,任何具有权限的用户都可以访问系统DSN”,但是它还是不能从网络上来访问。
n   文件DSN:则与前两者不同,它们可以在所有安装了相同驱动程序的用户中共享,这些数据源对于计算机说都是本地的。也就是说可以通过网络上来访问。
     45显示了用ADO.NET测试的ODBC驱动程序。
4-5 ODBC数据提供程序所对应的数据源驱动程序表
驱动程序
SQL Server
Microsoft ODBC for Oracle
Microsoft Access  驱动程序 (*.mdb)
ODBC .NET Framework 数据提供程序类位于System.Data.Odbc命名空间中。以下代码示例显示如何在您的应用程序中包含System.Data.Odbc命名空间。
using  System.Data.Odbc;

5.ADO.NETOracle的关联

ADO.NET 提供程序通过Oracle客户端连接软件启用对Oracle数据源的数据访问,该数据提供程序支持Oracle客户端软件 8.1.7 版或更高版本。
ADO.NET 为与Oracle数据库关联提供程序类位于System.Data.OracleClient命名空间中,并包含在System.Data.OracleClient.dll程序集中。在编译使用该数据提供程序的应用程序时,需要同时引用System.Data.dllSystem.Data.OracleClient.dll
以下代码示例显示如何在您的应用程序中包含System.Data.OracleClient命名空间。
using  System.Data;
using System.Data.OracleClient;




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/214524,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
SQL 数据库连接 数据处理
ADO.NET基础03
ADO.NET基础03
151 0
ADO.NET基础03
|
SQL 安全 数据库连接
ADO.NET基础02
ADO.NET基础02
209 0
ADO.NET基础02
|
存储 开发框架 .NET
ADO.NET基础01
ADO.NET基础01
151 0
ADO.NET基础01
|
SQL Oracle 关系型数据库
ADO.Net简介 140
  ADO.NET是.Net中一组类库,通过这组类库可以让我们通过程序的方式访问数据库中数据;之前学习的都是在数据库管理器中通过设计器或者SQL语句进行增删改查等操作数据库中的数据,对于普通用户不可能每个人都必须学习SQL,才能查看使用数据库,我们使用ADO.Net中的类库通过搭建比如窗体程序,使普通用户通过窗体上的按钮就可以很方便地操作和使用数据库中的数据,比如去买火车飞机等票时,窗口的出票员他们不可能每个人都去学习过SQL的知识后才能上岗,他们也是通过窗体或者网页方式查询使用数据库的数据的   ADO.NET中最重要的两个类:1)Connection用来连接数据库 2)Command用
151 0
|
SQL 缓存 .NET
一起谈.NET技术,ASP.NET缓存简介
概述   缓存学术一些的解释是”将常用数据放入易于读取的地方以提高性能”。而对于Asp.net来说,需要被缓存的对象多种多样,包括从数据库中提取出来的数据,以及aspx页面生成的静态页,甚至是编译好的程序集。
1497 0
|
SQL 安全 数据库
|
存储 大数据 程序员
|
缓存 数据库 数据格式
|
SQL 存储 数据库连接
|
SQL 安全 数据库连接