现今我有了两个DataTable想添加到DataSet中,然后给两个表建立关系(relation)。
比如:
DataSet.Relations.Add("rel",Tablename[1],Tablename[2],true);现在我现有的两个datatable怎么样才能填充到DataSet中呢?感谢各位,顶者有分。

解决方案 »

  1.   

    dim ds as new dataset
    ds.tables.add(dt)    ''添加datatable.这里dt为datatable的变量
    ds.tables.add(dt2)
    这样则可
      

  2.   

    DataSet ds = new DataSet();
    DataTable dt1 = new DataTable();
    DataTable dt2 = new DataTable();
    ds.Tables.Add(dt1);
    ds.Tables.Add(dt2);
      

  3.   

    dim ds as new dataset
    ds.tables.add(dt)    ''添加datatable.这里dt为datatable的变量
    ds.tables.add(dt2)
    DataSet.Relations.Add("rel",dt.Columns[""],dt2.Columns[""],true);
      

  4.   

    再问一问,这个DataSet如何绑定到DataGrid上?
      

  5.   

    将两个表对象实例

    关系实例都加到DataSet中,
    其中关系要指明两个表的主外键关系
      

  6.   

    再问一问,这个DataSet如何绑定到DataGrid上?
    =============
    实际上是把dataset里的datatable拌定到datagrid的
    你可以
    datagird1.datasource=ds.tables(索引)
    或者
    datagird1.datasource=ds.tables("表名")
      

  7.   

    DataSet ds = new DataSet();
    DataTable dt1 = new DataTable();
    DataTable dt2 = new DataTable();
    ds.Tables.Add(dt1);
    ds.Tables.Add(dt2);> Just so simple!
      

  8.   

    da.fill(myset,"table1")
    or
    myset.tables.add(table1)
      

  9.   

    dataset不是有add方法,其次datagrid有datasource属性
      

  10.   

    to  hackate(兰花开香入梦境,独思佳人亦飘然!!) 
    不错,我是想把两个表添加到同一个dataset,两个表的关系同过relation指定。
    dataset最终要绑定到datagrid中。
      

  11.   

    DataGrid dg;
    dg.DataSource = dataset;
    DataGrid控件可以显示多张表.
      

  12.   

    see:
    http://dotnet.aspx.cc/ShowDetail.aspx?id=149E5DD7-3B32-461e-ACC6-51D1652E6746
      

  13.   

    我已经试过了!还是不对!无法把我的第二个表中的内容显示出来。代码:DataTable dt=new DataTable();
    dt=dTabe();//调用的函数
    ds.Tables.Add(dt);
    ds.Relations.Add("rel",ds.Tables[0].Columns["name"],dt.Columns["name"],true);
    dg.DataSource=ds.Tables[0].DefaultView;
    dg.DataBind();
      

  14.   

    up者有分
    我应该如何在Datagrid把这两个表显示出来?
      

  15.   

    private myDataSet As DataSet 
     
     Private Sub MakeDataTables()
        ' Run all of the functions. 
        MakeParentTable()
        MakeChildTable()
        MakeDataRelation()
        BindToDataGrid()
     End Sub
     
     Private Sub MakeParentTable()
        ' Create a new DataTable.
        Dim myDataTable As DataTable = new DataTable("ParentTable")
        ' Declare variables for DataColumn and DataRow objects.
        Dim myDataColumn As DataColumn 
        Dim myDataRow As DataRow 
     
        ' Create new DataColumn, set DataType, ColumnName and add to DataTable.    
        myDataColumn = New DataColumn()
        myDataColumn.DataType = System.Type.GetType("System.Int32")
        myDataColumn.ColumnName = "id"
        myDataColumn.ReadOnly = True
        myDataColumn.Unique = True
        ' Add the Column to the DataColumnCollection.
        myDataTable.Columns.Add(myDataColumn)
     
        ' Create second column.
        myDataColumn = New DataColumn()
        myDataColumn.DataType = System.Type.GetType("System.String")
        myDataColumn.ColumnName = "ParentItem"
        myDataColumn.AutoIncrement = False
        myDataColumn.Caption = "ParentItem"
        myDataColumn.ReadOnly = False
        myDataColumn.Unique = False
        ' Add the column to the table.
        myDataTable.Columns.Add(myDataColumn)
     
        ' Make the ID column the primary key column.
        Dim PrimaryKeyColumns(0) As DataColumn
        PrimaryKeyColumns(0)= myDataTable.Columns("id")
        myDataTable.PrimaryKey = PrimaryKeyColumns
     
        ' Instantiate the DataSet variable.
        myDataSet = New DataSet()
        ' Add the new DataTable to the DataSet.
        myDataSet.Tables.Add(myDataTable)
     
        ' Create three new DataRow objects and add them to the DataTable
        Dim i As Integer
        For i = 0 to 2
           myDataRow = myDataTable.NewRow()
           myDataRow("id") = i
           myDataRow("ParentItem") = "ParentItem " + i.ToString()
           myDataTable.Rows.Add(myDataRow)
        Next i
     End Sub
     
     Private Sub MakeChildTable()
        ' Create a new DataTable.
        Dim myDataTable As DataTable = New DataTable("childTable")
        Dim myDataColumn As DataColumn 
        Dim myDataRow As DataRow 
     
        ' Create first column and add to the DataTable.
        myDataColumn = New DataColumn()
        myDataColumn.DataType= System.Type.GetType("System.Int32")
        myDataColumn.ColumnName = "ChildID"
        myDataColumn.AutoIncrement = True
        myDataColumn.Caption = "ID"
        myDataColumn.ReadOnly = True
        myDataColumn.Unique = True
        ' Add the column to the DataColumnCollection.
        myDataTable.Columns.Add(myDataColumn)
     
        ' Create second column.
        myDataColumn = New DataColumn()
        myDataColumn.DataType= System.Type.GetType("System.String")
        myDataColumn.ColumnName = "ChildItem"
        myDataColumn.AutoIncrement = False
        myDataColumn.Caption = "ChildItem"
        myDataColumn.ReadOnly = False
        myDataColumn.Unique = False
        myDataTable.Columns.Add(myDataColumn)
     
        ' Create third column.
        myDataColumn = New DataColumn()
        myDataColumn.DataType= System.Type.GetType("System.Int32")
        myDataColumn.ColumnName = "ParentID"
        myDataColumn.AutoIncrement = False
        myDataColumn.Caption = "ParentID"
        myDataColumn.ReadOnly = False
        myDataColumn.Unique = False
        myDataTable.Columns.Add(myDataColumn)
     
        myDataSet.Tables.Add(myDataTable)
        ' Create three sets of DataRow objects, five rows each, and add to DataTable.
        Dim i As Integer
        For i = 0 to 4
           myDataRow = myDataTable.NewRow()
           myDataRow("childID") = i
           myDataRow("ChildItem") = "Item " + i.ToString()
           myDataRow("ParentID") = 0 
           myDataTable.Rows.Add(myDataRow)
        Next i
        For i = 0 to 4
           myDataRow = myDataTable.NewRow()
           myDataRow("childID") = i + 5
           myDataRow("ChildItem") = "Item " + i.ToString()
           myDataRow("ParentID") = 1 
           myDataTable.Rows.Add(myDataRow)
        Next i
        For i = 0 to 4
           myDataRow = myDataTable.NewRow()
           myDataRow("childID") = i + 10
           myDataRow("ChildItem") = "Item " + i.ToString()
           myDataRow("ParentID") = 2 
           myDataTable.Rows.Add(myDataRow)
        Next i
     End Sub
     
     Private Sub MakeDataRelation()
        ' DataRelation requires two DataColumn (parent and child) and a name.
        Dim myDataRelation As DataRelation 
        Dim parentColumn As DataColumn 
        Dim childColumn As DataColumn 
        parentColumn = myDataSet.Tables("ParentTable").Columns("id")
        childColumn = myDataSet.Tables("ChildTable").Columns("ParentID")
        myDataRelation = new DataRelation("parent2Child", parentColumn, childColumn)
        myDataSet.Tables("ChildTable").ParentRelations.Add(myDataRelation)
     End Sub
     
     Private Sub BindToDataGrid()
        ' Instruct the DataGrid to bind to the DataSet, with the 
        ' ParentTable as the topmost DataTable.
        DataGrid1.SetDataBinding(myDataSet,"ParentTable")
     End Sub
     
      

  16.   

    自动add会按0,1的顺序在dataset里添加。