如何在数据表中动态创建列并为其赋值?

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?

以上是关于如何在数据表中动态创建列并为其赋值?的主要内容,如果未能解决你的问题,请参考以下文章

如何动态地将行转换为列,并为每列使用不同的列名

如何访问结构中的 int 指针数据类型并为其赋值?

如何使用下面的类从web服务中动态读取下面给出的JSON数据,并为收到的数据创建水平列表视图。

快速动态创建对象并设置属性

在jquery数据表中动态添加列并插入数据

动态变量名 php 7.4 和赋值