如何把DataTable添加到dataset中?

chnj1981 2005-08-28 11:36:03
现今我有了两个DataTable想添加到DataSet中,然后给两个表建立关系(relation)。
比如:
DataSet.Relations.Add("rel",Tablename[1],Tablename[2],true);

现在我现有的两个datatable怎么样才能填充到DataSet中呢?

感谢各位,顶者有分。
...全文
5977 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
flying310 2005-08-29
  • 打赏
  • 举报
回复
自动add会按0,1的顺序在dataset里添加。
parol2910 2005-08-29
  • 打赏
  • 举报
回复
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

ndhjx 2005-08-29
  • 打赏
  • 举报
回复
学习兼接分
chnj1981 2005-08-29
  • 打赏
  • 举报
回复
声明只有一个datagrid。
mezyy 2005-08-29
  • 打赏
  • 举报
回复
来学习 帮up
binny0532 2005-08-29
  • 打赏
  • 举报
回复
帮你顶!
chnj1981 2005-08-29
  • 打赏
  • 举报
回复
up者有分
我应该如何在Datagrid把这两个表显示出来?
FrankYuo 2005-08-28
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);

> Just so simple!
hackate 2005-08-28
  • 打赏
  • 举报
回复
再问一问,这个DataSet如何绑定到DataGrid上?
=============
实际上是把dataset里的datatable拌定到datagrid的
你可以
datagird1.datasource=ds.tables(索引)
或者
datagird1.datasource=ds.tables("表名")

ChengKing 2005-08-28
  • 打赏
  • 举报
回复
将两个表对象实例

关系实例都加到DataSet中,
其中关系要指明两个表的主外键关系
chnj1981 2005-08-28
  • 打赏
  • 举报
回复
再问一问,这个DataSet如何绑定到DataGrid上?
linguicheng 2005-08-28
  • 打赏
  • 举报
回复
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);
hzw66 2005-08-28
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
hackate 2005-08-28
  • 打赏
  • 举报
回复
dim ds as new dataset
ds.tables.add(dt) ''添加datatable.这里dt为datatable的变量
ds.tables.add(dt2)
这样则可
chnj1981 2005-08-28
  • 打赏
  • 举报
回复
我已经试过了!还是不对!无法把我的第二个表中的内容显示出来。

代码:

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();
hackate 2005-08-28
  • 打赏
  • 举报
回复
see:
http://dotnet.aspx.cc/ShowDetail.aspx?id=149E5DD7-3B32-461e-ACC6-51D1652E6746
sueprljy 2005-08-28
  • 打赏
  • 举报
回复
DataGrid dg;
dg.DataSource = dataset;
DataGrid控件可以显示多张表.
chnj1981 2005-08-28
  • 打赏
  • 举报
回复
to hackate(兰花开香入梦境,独思佳人亦飘然!!)
不错,我是想把两个表添加到同一个dataset,两个表的关系同过relation指定。
dataset最终要绑定到datagrid中。
jimu8130 2005-08-28
  • 打赏
  • 举报
回复
dataset不是有add方法,其次datagrid有datasource属性
brando_beat 2005-08-28
  • 打赏
  • 举报
回复
楼上说的很明白了。
加载更多回复(3)

62,247

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧