例如:在ds中有表A,表B,表C
表A,表B,表C都有主键ID,而且是一致的。能不能通过ID将三个表关联起来,再加上其他查询条件,查询出结果(结果中包含三个表的部分字段)。
在sql语句中很好实现,但是在Dataset中如何实现,谢谢!!!

解决方案 »

  1.   

    create relationships between columns in different tables, then use DataRow's GetChildRows method, or seeHOW TO: Implement a DataSet JOIN helper class in Visual C# .NET
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;326080
      

  2.   

    那就在SQL实现了,调用不就可以了
      

  3.   

    DataSet通过关联是可以实现的,尤其主从表,具体实现看一下帮助就可以了
    但这种方式,在实际应用中用的较少,灵活性较差,一般都采用存储过程或其它SQL方式
      

  4.   

    因为要作到离线操作,无法利用服务器的数据库,所以只能操作Dataset,另外谁能给出relationships 使用方法,如何多表进行关联查询
      

  5.   

    private void CreateRelation() 
    {
        // 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);
    }
      

  6.   

    谢谢大家,我现在还是有疑问,如何利用relationship进行多表关联查询,并将查询结果显示到datagrid中,再次感谢!!
      

  7.   

    还有个问题,如何把dataset中的表关联查出结果,并把它显示在datagrid中
      

  8.   

    如何把dataset中的表关联查出结果,并把它显示在datagrid中这个不已经解决了吗?QFYNFSJF(齐飞雨) ( ) 信誉:96
      

  9.   

    建立关联后DataRow.GetChildRows获取关联的子行,DataRow.GetParentRow 方法获取父行.
      

  10.   

    将查询结果显示到dategrid中
    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");