以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [原创]提供一个System.Data.DataTable转Foxtable.DataTable的函数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183352)

--  作者:qqzwc
--  发布时间:2022/11/2 15:53:00
--  [原创]提供一个System.Data.DataTable转Foxtable.DataTable的函数
看到之前论坛不少人求助.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编辑过]

--  作者:zcl
--  发布时间:2022/11/3 12:19:00
--  
谢谢分享
--  作者:chen37280600
--  发布时间:2022/11/3 14:45:00
--  
你找的是这个把:《把组合统计结果的fxDataSource(既是原生System.Data.DataTable)转json输出给前端,解决BS开发模式下此强大的多表联查工具只能用在C/S领域table组件的局限性》
[此贴子已经被作者于2022/11/3 14:45:18编辑过]