(七)DataSet对象——以编程方式访问数据库

1、 填充DataSet对象

方法如下:

DataSet ds = new DataSet();

adapter.Fill ( ds );

或者:

DataSet ds = new DataSet();

adapter.Fill ( ds , “ myTable ”);

如果DataSet中已经存在名为myTable的表,将用数据适配器中的数据填充它;否则,将添加这样的表。表名区分大小写。

 

DataTable一样,通常需要在填充表数据前填充表的架构信息。同样,可以使用如下方法来完成:

DataSet ds = new DataSet();

adapter.Fill Schema( ds,SchemaType.Mapped, “ myTable” );

adapter.Fill ( ds , “ myTable ”);

 

2、 定义和使用表关系

要使用数据库中的数据填充的DataSet对象实现表之前的关系,必须手工添加关系。DataSetRelation属性包含一系列表之间的关系。添加关系的方法如下:

ds.Relation.Add (

“ParentTable_ChildTable” ,

ds.Tables[ “ ParentTable ” ].Columns [ “ ParentTableID ” ] ,

ds.Tables[ “ ChildTable ” ].Columns [ “ParentTableID” ]

);

这是在表ParentTableChildTable之间创建了一个名为ParentTable_ChildTable的关系。ParentTableID的列是ParentTable表的主键,同时是表ChildTable的外键。如果一个或两个表有组合主键,可以用DataColumn对象数组代替单个DataColumn对象。

以这样方式定义关系后,就可以在代码中使用它。为此,可使用DataRow.GetChildRows()方法。例如:

DataRow parentRow = ds.Tables [ “ParentTable” ].Rows[0];

DataRow childRow = parentRow.GetChildRows ( “ParentTable_ChildTable” );

 

3、 类型化数据集

在数据绑定的环境外,与使用BindingSource控件情况大致相同,只是不使用BindingSource控件,而必须自己填充类型化数据集的实例。考虑类型化数据集时,首先要看它创建了哪些代码和类。

posted @ 2009-07-04 15:21  烈火★寒冰  阅读(912)  评论(0编辑  收藏  举报