当前位置:首页 > 技能相关 > C#与C++ > 正文内容

C# 第八篇 数据访问技术(二)Dataset与DataAdapter应用

admin2年前 (2022-12-26)C#与C++2230 修订时间:2022-12-26 20:00:43

概述

DataSet对象是创建在内存中的集合对象,包含任意数量的数据表及所有表的约束、索引和关系等。一个DataSet对象包含一组DataTable对象和一组DataRelation对象,每个DataTable对象都由集合对象DataColumn、DataRow和Constraint组成。

数据表对象中每行会跟踪一个RowState标志,来标识数据行的状态是未修改、已修改、新增或已删除。数据表还维护着每个已修改数据行的一个附加拷贝,这样就可以同时保留从数据库中取出的原值和当前值。

使用DataSet对象更新数据库,我们可以使用数据适配器的Update方法。Update方法的功能与适配器的Fill方法类似。唯一不同的是Update方法会查找数据集中的每个数据表的每个数据行,当它发现某个数据行状态为已修改、新增或已删除的时候,它就会为每个这样的数据行执行一个单独的命令。

数据适配器使用UpdateCommand、InsertCommand和DeleteCommand等属性引用的SqlCommand对象来执行这些命令。

DataSet类型还支持在内部包含的数据表上定义约束,包括主键约束、唯一约束和外键约束等。

DataView可以用来排序或过滤包含在数据表的数据,而不用修改数据表的实际内容,这与数据库中的数据表上定义的视图概念是非常类似的。

DataSet和DataTable

创建DataSet对象

//实例化dataset对象,并指定名称
DataSet ds = new DataSet("DataSetName");

查看调用OracleDataAdapter.Fill创建的结构

//将OracleDataAdapter的值,Fill给dataset对象
da.Fill(ds,"Orders");
//创建datatable对象,并赋值(ds对象的第一个表数据)
DataTable tbl = ds.Table[0];
//遍历datatable对象列名,DataColumn col 是列对象,tbl.Columns 是列总数 , col.ColumnName 当前列列名
foreach(DataColumn col in tbl.Columns)
Console.WriteLine(col.ColumnName);

查看OracleDataAdapter返回的数据

DataRow对象

//创建datatable对象,并赋值(ds对象的第一个表数据)
DataTable tbl = ds.Table[0];
//创建datarow对象,并设置 tbl对象第一行数据
DataRow row = tbl.Row[0];
//输出当前行指定列值,也可用行索引,从0开始,比如 row[0]
Console.WriteLine(row["OrderID"]);

检查存储在DataRow中的数据

DataTable tbl = row.Table;
foreach(DataColumn col in tbl.Columns)
Console.WriteLine(row[col]);

检查DatTable中的DataRow对象

//创建datatable对象,并赋值(ds对象的第一个表数据)
DataTable tbl = ds.Table[0];
foreach(DataRow row in tbl.Rows)
DisplayRow(row);



 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=268

分享给朋友:

相关文章

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。