欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# dataset存放多张表的实例

程序员文章站 2022-04-09 16:38:15
在c#中用同一个dataset保存从数据库中取出的多张表:补充:在dataset中访问多个表ado.net模型有一个很大的优点,就是dataset对象可以跟踪多个表和它们之间的关系。这表示可以在一个操...

在c#中用同一个dataset保存从数据库中取出的多张表:

补充:在dataset中访问多个表

ado.net模型有一个很大的优点,就是dataset对象可以跟踪多个表和它们之间的关系。这表示可以在一个操作的不同程序段之间传递完整的相关数据集,体系结构内在地维护数据之间关系的完整性。

ado.net中的datarelation对象用于描述dataset中的多个datatables对象之间的关系。每个dataset都包含datarelations的relations集合,以查找和操纵相关表。dataset的relations属性是一个datarelation对象的集合,datarelation对象表示这个dataset之间表之间的关系。要创建一个新的datarelation,可以使用relations的add()方法,该方法接收表示关系的字符串名和两个datacolumn(父列后跟子列)。比如:要创建customers表的customerid列和orders表的customerid列之间的关系 ,应使用下面的语法,把它们的关系命名为custorders。

为了使用有关系,需要从一张表的行进入另一张表的关联行,这就是对关系导航。通常导航是指从一张表的父行进入另一张表的子行。那么假如给定父表中的一行,如何获取子表中与其对应的所有行呢?我们可以使用datarow对象的getchildrows()方法提取这些行。示例:一个顾客(customers)表包含有一个或多个订单(orders)表,建立这两个表之间的数据并提取数据的代码如下。

利用两个表之间的关系访问表中的数据的时候,我们还可以使用linq over dataset 。这需要导入system.data.linq命名空间。我们可以使用如下代码代替上述代码中的foreach部分:

表之间的关系除了两个表之间的关系,还有更复杂的多表连接。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

相关标签: C# dataset