【问题标题】:How to dynamically create columns in datatable and assign values to it?如何在数据表中动态创建列并为其赋值?
【发布时间】:2012-06-29 17:07:37
【问题描述】:

我必须在运行时在数据表中创建列并为其赋值。我怎么能在 vb.net 中做到这一点。请提供任何样品...

【问题讨论】:

    标签: vb.net datatable vb.net-2010


    【解决方案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?
    猜你喜欢
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多