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

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

ADO.NET连接数据库的内容包括:连接到数据库、执行数据库操纵命令和检索结果。可以直接处理检索到的结果,也可以将其放入DataSet对象,方便与来自多个源的数据和在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。.NET Framework数据提供程序是轻量的,它在数据源和代码之间创建了一个最小层,以便在不以功能为代价的前提下提高性能。数据提供程序的在ADO.NET中分类如图4-11所示:
图4-11  .NET数据提供程序的在ADO.NET中的分类图
ADO.NET操控数据库的主要对象包括:Connection对象,Command对象,DataReader对象,DataAdapter对象。表4-1概括了组成 .NET Framework 数据提供程序的四个核心对象。
表4-1 .NET数据提供程序的四个核心对象表
对象
说明
Connection
建立与特定数据源的连接。所有Connection对象的基类均为DbConnection类。
Command
对数据源执行命令。公开Parameters,并且可以通过Connection在Transaction的范围内执行。所有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数据提供程序的命名空间有四类,前面提到的这些对象在每类数据提供程序的命名空间里都有一套,并且某个对象在不同的命名空间内名称是不同的。四类命名空间分别是:SQLClient、OLEDB、Oracle、ODBC,其对应的数据提供程序如表4-3所示:
表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 Server的OLE DB提供程序(SQLOLEDB)与OLE DB .NET Framework数据提供程序一起使用。对于SQL Server 6.5版和较早版本,必须将用于SQL Server的OLE 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命名空间包含的对象有:SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter等,OLEDB命名空间包含的对象有:OleDbConnection、OleDbCommand、OleDbDataReader、OleDbDataAdapter等。

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

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

2.ADO.NET与MS SQL Server的关联

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

3.ADO.NET与OLEDB的关联

OLEDB是Microsoft的一个战略性系统级编程接口,用于管理整个组织内的数据。OLEDB 是建立在ODBC功能之上的一个开放规范,主要用于访问非关系型数据库。表4-4显示已经用ADO.NET进行测试的提供程序。
表4-4 OLEDB数据提供程序所对应的数据源驱动程序表
驱动程序
提供程序
SQLOLEDB
用于SQL Server的Microsoft OLE DB提供程序
MSDAORA
用于Oracle的Microsoft OLE DB提供程序
Microsoft.Jet.OLEDB.4.0
用于Microsoft Jet的OLE 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.NET与ODBC的关联

DSN(数据源)是在odbc里设置的,用于连接数据库,ODBC只能用于关系型数据库。作为DSN的数据库连接可分为以前三种:
n  用户DSN:数据源对计算机来说是本地的,并且只能被当前用户访问,所以只有建立该数据源的用户才能访问该数据源,而且不能从网络上访问该数据源。
n  系统DSN:数据源对于计算机来说也是本地的,但并不是用户专用的,任何具有权限的用户都可以访问“系统DSN”,但是它还是不能从网络上来访问。
n  文件DSN:则与前两者不同,它们可以在所有安装了相同驱动程序的用户中共享,这些数据源对于计算机说都是本地的。也就是说可以通过网络上来访问。
    表4-5显示了用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.NET与Oracle的关联

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

using System.Data.OracleClient;

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

4-1 ADO.NET简介 4相关推荐

  1. 4-1 ADO.NET简介

    第四章 ADO.NET数据库访问技术 本章内容 4-1  ADO.NET 简介 4-2 ADO.NET-插入.删除.修改.检索数据 4-3 DataGridView 控件 - 显示和操作数据 4-4 ...

  2. *********ADO接口简介*********

    /***********************ADO接口简介*********************************/ ADO库包含三个基本接口:_ConnectionPtr接口._Com ...

  3. ADO与ADO.NET的区别与介绍

    1. ADO与ADO.NET简介 ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用.高速度.低内存支出和占用磁盘空间较少,支持用于建立 ...

  4. VC中ADO连接SQLSERVER的几种标准方式?

    VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看. 正文 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE D ...

  5. VC用ADO访问数据库全攻略  作者 相生昌

    VC用ADO访问数据库全攻略 作者 相生昌 <script language=VBScript> document.title="VC用ADO访问数据库全攻略 "&am ...

  6. 在VC中使用ADO开发数据库应用程序

    在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...

  7. ado.net 操作mysql_ADO.NET操作数据库(一)

    ---恢复内容开始--- [1]ADO.Net简介2015-12-07-20:16:05 ADO.Net提供对Microsoft SQL Server数据源以及通过OLE DB和XML公开的数据源的一 ...

  8. ADO/ADO.NET

    引用一.ADO 与ADO.NET两种数据访问方式区别? 1. ADO与ADO.NET简介 ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于 ...

  9. ADO 与ADO.NET

    原文出自:http://www.microsoft.com/china/community/program/originalarticles/techdoc/ADONET.mspx ADO 与ADO. ...

最新文章

  1. C++是不是类型安全的?
  2. Lambda表达式最佳实践
  3. Bigo 实时计算平台建设实践
  4. VS2013配置pro*C/C++开发环境
  5. 荣耀v10Android9新功能,荣耀10、荣耀V10开启安卓9.0内测 日常领跑行业
  6. gjr garch Matlab,基于Copula-ARIMA-GJR-GARCH模型的股票指数相关性分析
  7. 产品经理必知的三个数据分析框架
  8. torch和tensorflow各版本下载地址,tensorflow与cuda版本对应关系
  9. tcp报文解析工具_15 张图,了解一下 TCP/IP 必知也必会的 10个要点
  10. springboot 扫描文件夹_Spring Boot学习07_自定义starter
  11. ArcGIS pro 发布地图服务(一)动态地图服务
  12. springMVC简介
  13. 茆诗松等《高等数理统计(第二版)》例 1.28 的错误及改正
  14. qq怎样发起临时会话(不加好友)
  15. LTE手机接收灵敏度究竟如何?
  16. css 背景图片虚化效果
  17. SQL简体繁体转换函数
  18. matlab 实现disparity,disparity-map 利用matlab立体匹配,可获得 图像左右视图的视差图代码,效果不错238万源代码下载- www.pudn.com...
  19. node.js基于vue的化妆品销售管理系统的设计与实现毕业设计源码151314
  20. android自动夜间模式,Android实现日夜间模式的深入理解

热门文章

  1. 【重学计算机】计组D1章:计算机系统概论
  2. Gmail 收信的一些规则
  3. Java try和catch的使用介绍
  4. (1)-使用json所要用到的jar包下载
  5. C++ 著名程序库 概览
  6. struts2+json(3)
  7. Citrix 实践中的问题及解决
  8. 是什么原因引起的“ Invalid Session”错误?
  9. ExtJs学习笔记(2)_Basic GridPanel[基本网格]
  10. 修改notebook的默认路径_更改jupyter notebook默认存储路径