4-1 ADO.NET简介 4

简介:

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,如需转载请自行联系原作者

目录
相关文章
|
自然语言处理 JavaScript 前端开发
|
2月前
|
消息中间件 人工智能 NoSQL
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
Apache RocketMQ 推出轻量级通信模型 LiteTopic,专为 AI 时代多智能体协作设计。它通过百万级队列支持、会话状态持久化与断点续传能力,解决传统架构中通信脆弱、状态易失等问题。结合 A2A 协议与阿里巴巴 AgentScope 框架,实现高可靠、低延迟的 Agent-to-Agent 通信,助力构建稳定、可追溯的智能体应用。现已开源并提供免费试用,加速 AI 应用落地。
423 36
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
|
2月前
|
弹性计算 运维 Java
假期用阿里云服务器一键部署我的世界/幻兽帕鲁等游戏联机服务器教程
假期里和好友联机畅玩《我的世界》《幻兽帕鲁》等游戏,是不少玩家的休闲选择。自己搭建专属联机服务器,不仅能保证游玩私密性,还能自定义游戏规则,提升体验感。阿里云提供的一键部署服务,大幅简化了操作流程,即使是零基础的新人,也能在几分钟内完成部署。本文将整合最新的操作指南,详细拆解部署全流程,同时覆盖后续运维的核心要点。
|
2月前
|
人工智能 弹性计算 调度
阿里云无影AgentBay是什么?AgentBay使用、积分计费规则及问题解答FAQ
阿里云无影AgentBay是面向AI Agent的云基础设施,提供浏览器、桌面、代码、移动端全覆盖的安全沙箱环境,支持SDK与MCP接入,助力开发者高效构建与运行智能体。新用户可0.01元领取100积分体验券,用于抵扣资源消耗。平台支持秒级弹性伸缩、千级并发调度,适用于金融分析、跨境电商、医疗诊断等多场景。采用基础权益包+订阅包+后付费模式,灵活计费。
200 1
|
2月前
|
Kubernetes 容器 API
【k8s-1.34.2安装部署】四.kubernets master组件kube-apiserver,kube-controller-manager,kube-scheduler安装
本章介绍k8s-1.34.2中master组件的安装,涵盖kube-apiserver、kube-controller-manager、kube-scheduler的部署流程,包括文件准备、服务启动、状态验证及权限授权,为构建高可用集群奠定基础。
252 0
|
2月前
|
人工智能 自然语言处理 Java
AI工具选择困难症?Spring AI帮你省掉64%的令牌费用
你的AI助手有50+个工具但每次对话前就烧掉55000个令牌?就像带着全套工具箱去拧个螺丝一样浪费!Spring AI的工具搜索模式让AI按需发现工具,实现34-64%的令牌节省,告别工具选择困难症和账单焦虑。#Spring AI #工具优化 #令牌节省 #AI开发
421 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:六十一、信息论完全指南:从基础概念到在大模型中的实际应用
摘要: 信息论是人工智能尤其是大语言模型的核心数学工具。本文系统介绍了八大核心概念: 信息量:衡量事件意外程度,公式为I(x)=-log₂P(x) 信息熵:评估系统不确定性,H(X)=-ΣP(x)log₂P(x) 联合熵/条件熵:分析多变量关系及条件不确定性 互信息:量化变量间共享信息量 KL散度:衡量概率分布差异 交叉熵:模型训练的核心损失函数 在大语言模型中,这些概念被广泛应用于: 训练阶段:交叉熵优化预测,KL散度防止过拟合 推理阶段:温度参数调节生成文本的创造性(高熵增加多样性)
430 2
|
2月前
|
边缘计算 安全 前端开发
【内有限时惊喜活动】阿里云边缘安全加速ESA中国站免费版站点套餐重磅上线!
阿里云ESA中国站免费版上线!真·无限流量、永久免费、无需信用卡,专为开发者、学生及初创团队打造。支持全球加速、基础安全防护、边缘函数与Pages静态托管,一键部署博客、文档与Demo。
|
2月前
|
监控 算法 自动驾驶
北斗卫星导航定位从核心框架到定位流程详解(一)
我国北斗系统通过“空间星座+地面控制+用户终端”协同,以伪距测量和空间后方交会为核心,实现从米级到厘米级的高精度定位,广泛应用于导航、测绘、交通等领域。如果您想进一步了解北斗卫星定位技术和案例,欢迎搜索维构lbs智能定位~

热门文章

最新文章