分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

ADO.Net中DataSet的应用

发布时间:2023-09-06 02:23责任编辑:赖小花关键词:暂无标签

一、思维导图

二、知识点

(一)DataSet其实就是数据集,DataSet是把数据库中的数据映射到内存缓存中的所构成的数据容器,对于任何数据源,它都提供一致的关系编程模型。在DataSet中既定义了数据表的约束关系以及数据表之间的关系,还可以对数据表中的数据进行排序等。DataSet使用方法一般有三种:

  1. 把数据库中的数据通过DataAdapter对象填充DataSet。 

  2. 通过DataAdapter对象操作DataSet实现更新数据库。

  3. 把XML数据流或文本加载到DataSet。

(二)DataSet主要有三个特性:

  1. 独立性。DataSet独立于各种数据源。微软公司在推出DataSet时就考虑到各种数据源的多样性、复杂性。在.Net中,无论什么类型数据源,它都会提供一致的关系编程模型,而这就是DataSet。

  2. 离线(断开)和连接。DataSet既可以以离线方式,也可以以实时连接来操作数据库中的数据。这一点有点像ADO中的RecordSet。

  3. DataSet对象是一个可以用xml形式表示的数据视图,是一种数据关系视图。

(三)ADO.NET中的DataReader对象与DataSet对象的不同

使用DataReader与DataSet都可以从数据源读取数据。DataReader本身是通过IDbCommand.ExecuteReader()方法进行构建的;而DataSet则是通过DbDataAdapter.Fill()方法进行填充。此外,两者的工作方式有明显的不同:DataReader的执行过程不能脱离数据库连接,也就是在DataReader读取数据的时候不能够使用IDbConnection.Close()方法关闭数据库连接;而在使用DataSet获取数据时,可以断开数据库的连接,因为此时DbDataAdapter已经负责将数据获取到应用服务器中了。

(四)具体实例:

1、新建数据集

DataSet dataSet = new DataSet();

2、在数据库打开连接时用SQL数据适配器读取数据,并填充数据集

sqlDataAdapter.Fill(dataSet); 

3、将数据表添加到数据集中的表集合中

DataTable departmentTable = dataSet.Tables[0];DataTable doctorTable = dataSet.Tables[1];

4、声明数据关系,不创建约束(父列上的唯一约束、子列上的外键约束)

 DataRelation[] dataRelations = ????????????????????????????????????????????????????????????????????????????{ ???????????????new DataRelation ???????????????????????????????????????????????????????????????????????????????????????????????("Department_doctor" ????????????????????????????????????????????????????????????????????????????????????????, departmentTable.Columns["No"] ????????????????????????????????????????????????????????????????????????????, doctorTable.Columns["DepartmentNo"] ???????????????????????????????????????????????????????????????????????, false) ???????????}

5、当有多个数据关系时,将数据关系数组批量加入数据集的关系集合中;

dataSet.Relations.AddRange(dataRelations); 

6、浏览数据关系,运用foreach循环找到每一个节点

foreach (DataRow majorRow in departmentRow.GetChildRows("Department")) ???????????????????????????????{ ???????????????????TreeNode departmentrNode = new TreeNode(); ???????????????????????????????????????????????????????????????????????departmentNode.Text = departmentRow["Name"].ToString(); ??????????????????????????????????????????????????????????????departmentNode.Nodes.Add(departmentNode); ???????????????????????????????????????????????????????????????????????foreach (DataRow classRow in majorRow.GetChildRows("doctor_Class")) ????????????????????????????????????????{ ???????????????????????TreeNode ?doctorNode = new TreeNode(); ????????????????????????????????????????????????????????????????????????doctorNode.Text = doctorRow["Name"].ToString(); ???????????????????????????????????????????????????????????????doctorNode.Tag = ?doctorRow["No"]; ????????????????????????????????????????????????????????????????????????????doctorNode.Nodes.Add( doctorNode); ????????????????????????????????????????????????????????????????????????} ???????????????}

  

ADO.Net中DataSet的应用

原文地址:https://www.cnblogs.com/ZQHHP/p/9998716.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved