如何在数据表中动态创建列并为其赋值?
Posted
技术标签:
【中文标题】如何在数据表中动态创建列并为其赋值?【英文标题】:How to dynamically create columns in datatable and assign values to it? 【发布时间】:2012-06-29 17:07:37 【问题描述】:我必须在运行时在数据表中创建列并为其赋值。我怎么能在 vb.net 中做到这一点。请提供任何样品...
【问题讨论】:
【参考方案1】:如果您想在 VB.Net 中创建动态/运行时数据表,那么您应该按照以下步骤操作:
创建数据表对象。 将列添加到该数据表对象中。 将带有值的行添加到对象中。例如。
Dim dt As New DataTable
dt.Columns.Add("Id", GetType(Integer))
dt.Columns.Add("FirstName", GetType(String))
dt.Columns.Add("LastName", GetType(String))
dt.Rows.Add(1, "Test", "data")
dt.Rows.Add(15, "Robert", "Wich")
dt.Rows.Add(18, "Merry", "Cylon")
dt.Rows.Add(30, "Tim", "Burst")
【讨论】:
如果我不知道要创建多少列,如何修复 dt.Rows.Add(1, "Test", "data") 之类的列?甚至可以有 10 列。如何 ?谢谢【参考方案2】:你尝试了什么,有什么问题?
创建DataColumns
并向DataTable
添加值非常简单:
Dim dt = New DataTable()
Dim dcID = New DataColumn("ID", GetType(Int32))
Dim dcName = New DataColumn("Name", GetType(String))
dt.Columns.Add(dcID)
dt.Columns.Add(dcName)
For i = 1 To 1000
dt.Rows.Add(i, "Row #" & i)
Next
编辑:
如果你想读取一个xml文件并从中加载一个DataTable,你可以使用DataTable.ReadXml
。
【讨论】:
@Anuya:这些列是动态的 (New DataColumn....
)。如果这没有帮助,您需要提供更多信息,以实现您想要实现的目标。
我有一个 XML。当我读取 XML 的每个节点时,我必须在数据表中创建一列。其中 Datatable 列名 = NodeName 和 Datatable 列值 = 节点值。由于 XNL 中的节点数每次都可能不同,因此我必须使其创建列和为数据表分配值应该是通用的
@Anuya:那就用DataTable.ReadXml。
读取 XML 不是我的问题。我的问题不同。我不能按照你的建议做,因为 XML 将有很多子节点和 Datatab;e.ReadXML 不会从整个 XML 中得到一个部分。
@Anuya:你有没有试过DataSet.ReadXml
应该为每个子节点创建DataTables?以上是关于如何在数据表中动态创建列并为其赋值?的主要内容,如果未能解决你的问题,请参考以下文章