【问题标题】:Formatting DataTable columns when adding data by rows按行添加数据时格式化 DataTable 列
【发布时间】:2021-12-02 07:59:50
【问题描述】:

我知道并在添加列时使用了 DataTable("dt") 的列格式,例如:

dt.Columns.Add("myColName", GetType(Double))

DataColumn column;    
column = New DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "MyColName";
dt.Columns.Add(column);

但是,我将双数组 x(i,j) 中的数据添加到 dt,但按行添加。如何指定 GetType(Double) 以确保列最终为 Double?

Dim workrow As DataRow
For i = 0 To MyRows - 1
    workrow = dt.NewRow()
    For j = 0 To MyCols - 1
        workrow(j) = x(i, j)
    Next
    dt.Rows.Add(workrow)
Next

【问题讨论】:

  • 当您定义列时(使用您的两种方法之一),这就是设置列的数据类型的方式。之后您需要做的就是确保值的类型正确。您在第三个代码块中添加 DataRows 的方式不需要指定列 DataType
  • 如果您遇到问题,或许可以重新提出您的问题以包含您遇到的问题
  • 事实证明,您可以在添加数据之前格式化列,所以我就是这样做的(因为我知道所有列都应该是 Double)。
  • x 的数据类型是什么。如果 x 是 Double,应该没有问题。

标签: vb.net datatable formatting


【解决方案1】:

通过在将数据添加到 dt 之前指定列格式来解决此问题。

For j = 0 To dt.Columns.Count - 1
  dt.Columns(j).DataType = System.Type.GetType("System.Double")
Next

虽然数组是一个 Double,不会有任何问题,但当数据按行(而不是按列)添加到 dt 时,这仍然是一种格式化列的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2021-09-20
    • 2012-08-05
    • 1970-01-01
    相关资源
    最近更新 更多