看到之前论坛不少人求助.Net原生的System.Data.DataTable转Foxtable中DataTable办法。其实除了常规的直接绑定到窗口中的Table显示的方法外(Tables("窗口1_Table1").DataSource = dt),其中dt既可以是DataTable也可以是System.Data.DataTable
我自己简单写了个直接遍历完成转换的方法,有需要的请参考
新增一个内部函数,名字假设就叫 数据表转换
'System.Data.DataTable 转 Foxtable.DataTable
Dim dt1 As System.Data.DataTable = Args(0)
Dim dtb As New DataTableBuilder("temp")
For Each c As System.Data.DataColumn In dt1.Columns
dtb.AddDef(c.ColumnName, c.DataType, c.MaxLength)
Next
Dim dt2 As DataTable = dtb.Build(True)
Dim cnt As Integer = dt1.Rows.Count
If cnt > 0 Then
dt2.AddNew(cnt)
For i As Integer = 0 To cnt - 1
For Each c As System.Data.DataColumn In dt1.Columns
dt2.DataRows(i)(c.ColumnName) = dt1.Rows(i)(c.ColumnName)
Next
i += 1
Next
End If
Return dt2
使用方法
之前代码假设已生成了一个dt1变量,类型为System.Data.DataTable
Dim dt2 As DataTable = Functions.Execute("数据表转换", dt1)
dt2就是你要的结果
[此贴子已经被作者于2022/11/2 16:21:50编辑过]