ADO.NET 快速入门(九):使用关系型数据
来源:互联网 发布:spark大数据平台 编辑:程序博客网 时间:2024/06/05 23:45
DataSet 可以包含非关联表,也可以包含关联表。你可以把 DataSet 想象成一个文档数据。事实上,除了 DataSet 是基于层级模型的,其它和 XML 数据文档是一样的。由于数据通常存储在关系数据库,DataSet 可以同时处理层级型关系和主键/外键型关系。 Relationships 也有不同的执行方式。默认情况下,Deletes 和 Updates 是级联型的:假如删除一个 Customer 行,关联的 Orders 行也会被删除;假如更改一个 Customer 行的主键,关联的 Orders 表中的外键也会更改。
DataSet 包含一个 Relations 集合。你可以利用关联表的 Column 或者 Columns(复合列键) 添加 Relation 到这个 Relations 集合。下面的代码在 Customers 和 Orders 之间创建一个 Relation,并命名为 CustOrders。
示例一:
// 使用父子列创建 Relation DataRelation myDataRelation = myDataSet.Relations.Add("CustOrders", myDataSet.Tables["Customers"].Columns["CustomerID"], myDataSet.Tables["Orders"].Columns["CustomerID"]);
在 DataSet 内部的 Customers 表上的 CustomerID 主键和 Orders 表上的 CustomerID 外键之间添加了 Relation 之后,你就可以遍历关联数据了。
示例二:
SqlConnection myConnection = new SqlConnection("server=(local);Integrated Security=SSPI;database=northwind;"); SqlDataAdapter myDataAdapter = new SqlDataAdapter(); DataSet myDataSet = new DataSet(); myDataAdapter.SelectCommand = new SqlCommand("SELECT * FROM Customers", myConnection); myDataAdapter.Fill(myDataSet, "Customers"); myDataAdapter.SelectCommand = new SqlCommand("SELECT * FROM Orders", myConnection); myDataAdapter.Fill(myDataSet, "Orders"); // 使用父子列创建 Relation DataRelation myDataRelation = myDataSet.Relations.Add("CustOrders", myDataSet.Tables["Customers"].Columns["CustomerID"], myDataSet.Tables["Orders"].Columns["CustomerID"]); // 迭代 Customers 父行 foreach (DataRow myDataRow1 in myDataSet.Tables["Customers"].Rows) { Console.WriteLine("客户: " + myDataRow1["ContactName"].ToString()); // 迭代 Customers 行的 Orders 子行 foreach (DataRow myDataRow2 in myDataRow1.GetChildRows(myDataRelation)) { Console.WriteLine("订单号:" + myDataRow2["OrderID"].ToString()); } }
0 0
- ADO.NET 快速入门(九):使用关系型数据
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
- ADO.NET 快速入门(十四):使用 SQL Server 检索数据
- ADO.NET 快速入门(十):过滤数据
- ADO.NET 快速入门(七):使用数据库事务
- ADO.NET 快速入门(一):ADO.NET 概述
- ADO.NET 快速入门(一):ADO.NET 概述
- ADO.NET中的数据关系
- ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据
- ADO.NET 快速入门(十五):ADO 应用转换为 ADO.NET
- ADO.NET 2.0 快速入门(asp.net)
- ADO.NET 快速入门(二):执行命令
- ADO.NET 快速入门(四):从数据库填充 DataSet
- ADO.NET 快速入门(五):从 DataSet 更新数据库
- ADO.NET 快速入门(六):读写 XML
- ADO.NET 快速入门(八):处理 Errors
- ADO.NET 快速入门(十一):连接池
- ADO.NET 快速入门(二):执行命令
- CSS选择器的浏览器支持
- 打地鼠程序
- HTMLl标签fieldset/legend元素
- leetcode-448-Find All Numbers Disappeared in an Array
- SparseArray源码解析
- ADO.NET 快速入门(九):使用关系型数据
- Spring+Hibernate实现分页功能
- GDOI第四轮模拟总结
- 认识推送
- Longest Ordered Subsequence(dp)
- 建立和运行包含多个文件的程序的方法
- 初学命令(6)
- Vmware安装Centos NAT方式设置静态IP 并可以上网
- jfreechart 时间序列图