Sha*_*han 3 vb.net datatable nested relationship
更新:我正在尝试使用屏幕截图(链接)中显示的架构创建 XML。有人告诉我如何添加关系来实现此目的或修改数据表来实现此目的吗?
Data_Set.Relations.Add("ProdCategory", tbl_Product.Columns("pID"), tbl_Category.Columns("cID"))
Data_Set.Relations("ProdCategory").Nested = True
Data_Set.Relations.Add("CatogoryItems", tbl_Category.Columns("cID"), tbl_Items.Columns("iID"))
Data_Set.Relations("CatogoryItems").Nested = True
'Data_Set.Relations.Add("ProdItems", tbl_Product.Columns("pID"), tbl_Iems.Columns("iID"))
'Data_Set.Relations("ProdItems").Nested = True
Run Code Online (Sandbox Code Playgroud)
我被上面的代码困住了。
而且我应该能够使用 read xml 将 xml 读回数据集。
小智 5
您的代码看起来好像您正在尝试使用不同的父/子列,例如您将父表中的productid链接到子表中的categoryid,等等...这将产生不需要的结果。我最接近你想要的猜测:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim DtSet As New DataSet
With DtSet
.Tables.Add("Product")
With .Tables("Product")
.Columns.Add("ProductID", GetType(String))
.Rows.Add("P1")
.Rows.Add("P2")
End With
.Tables.Add("Category")
With .Tables("Category")
.Columns.Add("ProductID", GetType(String))
.Columns.Add("CategoryID", GetType(String))
.Rows.Add("P1", "C1")
.Rows.Add("P1", "C2")
.Rows.Add("P2", "C3")
.Rows.Add("P2", "C4")
End With
.Tables.Add("Items")
With .Tables("Items")
.Columns.Add("ProductID", GetType(String))
.Columns.Add("CategoryID", GetType(String))
.Columns.Add("Items", GetType(String))
.Rows.Add("P1", "", "Item1")
.Rows.Add("P2", "", "Item2")
.Rows.Add("", "C2", "Item3")
.Rows.Add("", "C3", "Item4")
.Rows.Add("", "C4", "Item5")
End With
.Relations.Add(New DataRelation("ProductToItems", .Tables("Product").Columns("ProductID"),
.Tables("Items").Columns("ProductID"), False))
.Relations.Add(New DataRelation("ProductToCategory", .Tables("Product").Columns("ProductID"),
.Tables("Category").Columns("ProductID"), False))
.Relations.Add(New DataRelation("CategoryToItems", .Tables("Category").Columns("CategoryID"),
.Tables("Items").Columns("CategoryID"), False))
For Each Relation As DataRelation In .Relations
Relation.Nested = True
Next
End With
DtSet.WriteXml("C:\Data\Data.XML", XmlWriteMode.IgnoreSchema)
End Sub
Run Code Online (Sandbox Code Playgroud)
由于示例中存在空值,因此无法启用约束。
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |