C# 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部分:
表之间的关系除了两个表之间的关系,还有更复杂的多表连接。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
下一篇: 用python爬虫爬取CSDN博主信息