JavaBean
风险管理
SOA
面向对象
中间件
Web测试
专题讲座
存储管理
数据结构
系统架构
设计模式
需求管理
软件工程
沟通
整体管理
网络布线
风险管理
变更控制
信息管理
安全管理
项目经理
知识战略
质量
成本
进度
绩效
配置
项目管理
JAVA学习
JDBC
Spring
java常见问题专区
java基础
j2ee
j2me
j2se
JavaBeans
.NET
c#.net
vb.net
Framework
Asp.Net
ADO.Net
Web Services
silverlight
J#.Net
C语言
C语言
C++
VC/VC++
CodeBlocks
C++ Builder
数据库
Oracle
SQLite
数据库技术专区
SqlServer
MySQL
DB2
Sybase
Power Builder
项目管理
需求管理
面试题库
嵌入式
变更控制
项目经理
进度管理
整体管理
质量管理
认证考试
微软认证
Cisco认证
Java认证
ORACLE认证
Macrmedia认证
Adobe认证
软件水平考试
全国等级考试
教程基地
文档中心
开放平台
文档下载
软件开发的家园,编程爱好者的天地.
现在是:北京时间 2016/4/14 上午11:50:51 星期四
设为首页
|
加入收藏
|
网站地图
当前位置:
第八基地首页
>
asp.net
>
.NET技术专区
>
搜索
深入分析ADO.NET中的DataSet对象
发布于:
第八基地
来源:互联网 作者:天堂路上 时间:2016-04-27 点击:323
ADO.NET是.netFrameworkSDK中用以操作数据库的类库的总称。而DataSet类则是ADO.NET中最核心的成员之一,也是各种开发基于.Net平台程序语言开发数据库应用程序最常接触的类。之所以DataSet类在ADO.NET中具有特殊的地位,是因为DataSet在ADO.NET实现从数据库抽取数据中起到关键作用,在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存,所以有时说DataSet可以看成是一个数据容器。同时它在客户端实现读取、更新数据库等过程中起到了中间部件的作用(DataReader只能检索数据库中的数据)。
各种.Net平台开发语言开发数据库应用程序,一般并不直接对数据库操作(直接在程序中调用存储过程等除外),而是先完成数据连接和通过数据适配器填充DataSet对象,然后客户端再通过读取DataSet来获得需要的数据,同样更新数据库中数据,也是首先更新DataSet,然后再通过DataSet来更新数据库中对应的数据的。可见了解、掌握ADO.NET,首先必须了解、掌握DataSet。DataSet主要有三个特性:
1.独立性。DataSet独立于各种数据源。微软公司在推出DataSet时就考虑到各种数据源的多样性、复杂性。在.Net中,无论什么类型数据源,它都会提供一致的关系编程模型,而这就是DataSet。
2.离线(断开)和连接。DataSet既可以以离线方式,也可以以实时连接来操作数据库中的数据。这一点有点像ADO中的RecordSet。
3.DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。
一.DataSet对象的结构模型及和RecordSet的比较
虽说ADO.NET是ADO在.Net平台下得后继版本,但二者的区别是很大的。突出表现在ADO中的RecordSet对象和ADO.NET中的DataSet对象。RecordSet其实也是非常灵活的一个对象,微软公司推出它也是煞费苦心,如:RecordSet可以离线操作数据库,性能优良,效率较高等等这些都让当时的程序员为之一振。RecordSet虽然已经很复杂,但DataSet却比RecordSet复杂的多,我们知道每一DataSet往往是一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。而RecordSet只能存放单张数据表,虽然这张数据表可以由几张数据表JOIN生成。所以有些时候说,RecordSet更类似于DataSet中的DataTable。DataSet对象的结构模型如图01所示:
图01:DataSet对象的结构模型图
通过图01可见在DataSet对象结构还是非常复杂的,在DataSet对象的下一层中是DataTableCollection对象、DataRelationCollection对象和ExtendedProperties对象。上文已经说过,每一个DataSet对象是由若干个DataTable对象组成。DataTableCollection就是管理DataSet中的所有DataTable对象。表示DataSet中两个DataTable对象之间的父/子关系是DataRelation对象。它使一个DataTable中的行与另一个DataTable中的行相关联。这种关联类似于关系数据库中数据表之间的主键列和外键列之间的关联。DataRelationCollection对象就是管理DataSet中所有DataTable之间的DataRelation关系的。在DataSet中DataSet、DataTable和DataColumn都具有ExtendedProperties属性。ExtendedProperties其实是一个属性集(PropertyCollection),用以存放各种自定义数据,如生成数据集的SELECT语句等。
二.使用DataSet:
DataSet其实就是数据集,上文已经说过DataSet是把数据库中的数据映射到内存缓存中的所构成的数据容器,对于任何数据源,它都提供一致的关系编程模型。在DataSet中既定义了数据表的约束关系以及数据表之间的关系,还可以对数据表中的数据进行排序等。DataSet使用方法一般有三种:
上一篇:
ASP.NET 2.0 AJAX中Webservice调用方法
下一篇:
漫谈.Net PetShop和Duwamish ADO.NET数据库编程
对我有帮助
(
0
)
0%
对我没帮助
(
0
)
0%
相关新闻
华为手机虚拟按键的隐藏功能,据说95%的人不知道
小技巧:如何在 Kali Linux 中安装 Google Chrome 浏览器
6月27日-每日安全知识热点
Java-大体知识结构解析图
学习Java必看书籍和步骤
国外大型网站使用到编程语言-部分
Nginx提高安全与性能的最好配置
7800万iPhone 7大单来袭 苹果供应商股价抢跑
linux安装svn服务器(yum方式)
你们看过马云笑,你们看过马云哭吗?马云的10次生死抉择!
相关帖子
在Microsoft Office中使用ADO.NET
漫谈.Net PetShop和Duwamish ADO.NET数据库编程
ASP.NET 2.0 AJAX中Webservice调用方法
点击排行
Cisco课程简介_Cisco认证
jsp mysql制作简单的留言板(4)
CSS子元素浮动,父元素包不住子元素
让kindeditor显示高亮代码
linux常用命令大全,新手必备资料,带实例操作
快速学习thinkphp(第一天)
安装Spring工具套件到Eclipse
可变长数组在GCC编译器中的实现
Spring bean加载多个配置文件
Struts2 <s:hidden>隐藏值例子
推荐排行
我(作为一名开发者)所犯过的错误
找出共同好友 - 数据挖掘 - Scala版
Gin-Go学习笔记三:Gin-Web框架 JS分页
Gin-Go学习笔记四:Gin-Web框架 文件的上传下载
Gin-Go学习笔记五:Gin-Web框架 文件的操作
Gin-Go学习笔记六:Gin-Web框架 Api的编写
Gin-Go学习笔记七:Gin-Web框架 布局页面
Golang学习--TOML配置处理
golang 实现海明距离 demo
Gin-Go学习笔记二:Gin-Web框架
图片文档
C++混合
[Pyth
Confi
Corel
图一
根据团队开发过程的定义,下面介绍相关的概念。
集成团队软
Illus
运动效果
连载《一个
Ubunt
热点
随机
我(作为一名开发者)所犯过的错误
推荐一个框架,让你快速搞定各服务端(api,pc,mobile,wechat)代码的框架
web常用代码,以及如何写自适应网页
Redis在windows下安装过程
教你如果处理高并发数据不同步的问题php篇
thinkphp5自动完成操作,两次运行的详解
手动安装lnmp之安装nginx
Golang学习--TOML配置处理
Gin-Go学习笔记七:Gin-Web框架 布局页面
Gin-Go学习笔记六:Gin-Web框架 Api的编写
ODBC中的同步与异步执行模式
Dreamweaver CS3中的CSS布局规则
介绍.NET中的委派(Delegates)之一
PAT/图形输出习题集
金额合计求值问题
[技巧]如何自动清空struts表单域
MySQL数据库及其ODBC接口的介绍(2) (转载)
四种Eval测试结果:不要用CodeDom做大批量的表达式四则运算
微软工作人员称 Windows 8 进入开发阶段
SQL查询语言基本教程(3)
在线反馈
在线反馈
您需要提什么样的反馈?
遇到使用问题,需要专业支持
发现一个Bug,赶快告诉你们
还有不足,我是来提建议的
你们太棒了,点个赞
请把有问题的截图发给我们,方便分析、及时解决问题
提交反馈
感谢你的反馈,我们会在12小时内回复您的问题, 节假日顺延。如果有紧急情况,请及时联系qq:510974211。
知道了