gpt4 book ai didi

.net - 如何更改包含数据的 DataTable 中的列数据类型?

转载 作者:行者123 更新时间:2023-12-04 00:04:28 24 4
gpt4 key购买 nike

如何从 VB.NET 中的输入 DataTable(已填充)更改数据列的数据类型?然后,我将把代码放在一个 Blue Prism Code Stage 中,在那里我有输入:

  • 我要更改数据类型的字段(列)的名称
  • 我要转换的数据类型
  • 输入集合(数据表)

  • 例子:
    Dim InputDT As New DataTable
    InputDT.Columns.Add(New DataColumn("test"))
    dt.Columns("test").DataType = GetType(Date)

    最佳答案

    如果DataTable 已经填满了数据,您不能 更改其任何列的类型。如果您尝试这样做,您将收到 ArgumentException有一个非常直接的消息:

    Cannot change DataType of a column once it has data.


    一个好的替代方法是创建一个新的 DataTable(或克隆现有的 DataTable),更改列类型,然后用旧 DataTable 中的数据填充它。
    这样的事情应该工作:
    Dim InputDT As New DataTable
    InputDT.Columns.Add(New DataColumn("test"))
    InputDT.Rows.Add("1/1/2018")

    Dim clonedDT As DataTable = InputDT.Clone()
    clonedDT.Columns("test").DataType = GetType(Date)
    For Each row As DataRow In InputDT.Rows
    clonedDT.ImportRow(row)
    Next
    请注意,为了使其工作,该列中的数据必须对新类型有效。要处理现有值无法转换为新类型的情况,您可以使用 Try.. Catch语句如下:
    ' ...
    Try
    For Each row As DataRow In InputDT.Rows
    clonedDT.ImportRow(row)
    Next
    Catch ex As ArgumentException
    ' An error occurred, use 'ex.Message' to display the error message. Example:
    Console.WriteLine(ex.Message)
    End Try

    关于.net - 如何更改包含数据的 DataTable 中的列数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50984380/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com