我将 csv 文件导入到数据表中,不幸的是,我将数据放入字符串列中,即使是带有数字的列。
所以我必须将某些列的格式(除非有其他方式)转换为日期时间、整数或双精度,为什么我写了以下代码:
Public Sub ChangeFieldType(ByRef dataTable As DataTable, ByVal fieldIndex As Integer, ByVal newType As Type)
Dim newDataTable As DataTable = dataTable.Clone
newDataTable.Columns(fieldIndex).DataType = newType
For Each row As DataRow In dataTable.Rows
newDataTable.ImportRow(row)
Next
dataTable = newDataTable
End Sub
但是有一些空单元格的字符串格式是 vbnullstring。我的问题是有没有比我的代码更简单的方法,如果没有,是否有比转换空单元格更快的方法:
Public Sub ChangeFieldType(ByRef dataTable As DataTable, ByVal fieldIndex As Integer, ByVal newType As Type)
Dim newDataTable As DataTable = dataTable.Clone
newDataTable.Columns(fieldIndex).DataType = newType
For Each row As DataRow In dataTable.Rows
If row(fieldIndex) = vbNullString Then
row(fieldIndex) = Nothing
End If
newDataTable.ImportRow(row)
Next
dataTable = newDataTable
End Sub
因为这非常非常慢。
谢谢