一个 DataSet 可以与很多GBASE南大通用DataAdapter 对象一起使用。每个GBASE南大通用DataAdapter 都可用于填充一个或多个 DataTable 对象并将更新解析回数据源。DataRelation 对象可以在本地添加到 DataSet,这样您就可以关联来自不同数据源的数据。一个或多个?GBASE南大通用DataAdapter 对象可以处理与每个数据源的通信。
以下代码示例使用同一数据源填充 Customers 表和 Orders 表。已填充的表通过 DataRelation 相关联,这样,客户列表将与相应客户的订单一起显示出来。
? Customers 表定义:
CREATE TABLE Customers (
CustomerID varchar(5) NOT NULL PRIMARY KEY,
CompanyName VARCHAR(40) NOT NULL );
? Orders 表定义:
CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
CustomerID VARCHAR(40) NOT NULL );
C# 示例
GBaseDataAdapter custAdapter = new GBaseDataAdapter(
"SELECT * FROM Customers", _Connection);
GBaseDataAdapter ordAdapter = new GBaseDataAdapter (
"SELECT * FROM Orders", _Connection);
DataSet customerOrders = new DataSet();
custAdapter.Fill(customerOrders, "Customers");
ordAdapter.Fill(customerOrders, "Orders");
DataRelation relation = customerOrders.Relations.Add("CustOrders",
customerOrders.Tables["Customers"].Columns["CustomerID"],
customerOrders.Tables["Orders"].Columns["CustomerID"]);
foreach (DataRow pRow in customerOrders.Tables["Customers"].Rows)
{
Console.WriteLine(pRow["CustomerID"]);
foreach (DataRow cRow in pRow.GetChildRows(relation))
Console.WriteLine("\t" + cRow["OrderID"]);
}