例如:在ds中有表A,表B,表C
表A,表B,表C都有主键ID,而且是一致的。能不能通过ID将三个表关联起来,再加上其他查询条件,查询出结果(结果中包含三个表的部分字段)。
在sql语句中很好实现,但是在Dataset中如何实现,谢谢!!!
表A,表B,表C都有主键ID,而且是一致的。能不能通过ID将三个表关联起来,再加上其他查询条件,查询出结果(结果中包含三个表的部分字段)。
在sql语句中很好实现,但是在Dataset中如何实现,谢谢!!!
http://support.microsoft.com/default.aspx?scid=kb;EN-US;326080
但这种方式,在实际应用中用的较少,灵活性较差,一般都采用存储过程或其它SQL方式
{
// Get the DataColumn objects from two DataTable objects
// in a DataSet. Code to get the DataSet not shown here.
DataColumn parentColumn =
DataSet1.Tables["Customers"].Columns["CustID"];
DataColumn childColumn =
DataSet1.Tables["Orders"].Columns["CustID"];
// Create DataRelation.
DataRelation relCustOrder;
relCustOrder = new DataRelation("CustomersOrders",
parentColumn, childColumn);
// Add the relation to the DataSet.
DataSet1.Relations.Add(relCustOrder);
}
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
建立关联信息
DataTable orderTable = DBManager.GetOrders();
orderTable.TableName = "Orders";
DataTable detailsTable = DBManager.GetOrderDetails();
detailsTable.TableName = "OrderDetails"; DataSet dataSet = new DataSet();
dataSet.Tables.Add(orderTable.Copy());
dataSet.Tables.Add(detailsTable.Copy()); DataRelation dataRelation =new DataRelation("ParentChild",
dataSet.Tables["Orders"].Columns["OrderId"],
dataSet.Tables["OrderDetails"].Columns["OrderId"]); dataSet.Relations.Add(dataRelation); dataGrid1.SetDataBinding(dataSet,"Orders"); dataGrid2.SetDataBinding(dataSet,"Orders.ParentChild");