以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]生成datatable  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144339)

--  作者:new4w
--  发布时间:2019/12/17 15:08:00
--  [求助]生成datatable
需求:
1、根据已有datatable及相关条件,生成新的datatable;
2、根据datarow的集合生成新的datatable;
百度搜到如下方法:

private static DataTable GetNewTable(DataTable DT, string strCondition)
        {
            DataTable TempDT = DT.Clone();
            DataRow[] Rows = DT.Select(strCondition);
            foreach (DataRow DR in Rows)
            {
                TempDT.ImportRow(DR);
            }
            return TempDT;
        }
————————————————

public DataTable ToDataTable(DataRow[] rows)  
        {  
            if (rows == null || rows.Length == 0) return null;  
            DataTable tmp = rows[0].Table.Clone();  // 复制DataRow的表结构  
            foreach (DataRow row in rows)  
                tmp.Rows.Add(row.ItemArray);  // 将DataRow添加到DataTable中  
            return tmp;  
        } 
————————————————

请问如何将上面代码应用于狐表,实现上面功能,实际使用的时候这个很重要,因为datatable有很多方法可以使用,但是有时候根据已有数据转换起来有点麻烦,还请一定帮忙!极度感谢;

--  作者:有点蓝
--  发布时间:2019/12/17 15:20:00
--  
自行把代码转换为vbnet代码:http://converter.telerik.com/

写全命名空间即可,比如DataTable改为system.data.DataTable

--  作者:new4w
--  发布时间:2019/12/17 15:24:00
--  
命名空间啥的,实在不会,能否直接转换一个,另外转换完了,直接在外部引用哪里引用就可以吗?
--  作者:有点蓝
--  发布时间:2019/12/17 15:35:00
--  
不会就上网百度学,不会不是理由。

全局代码
Private Shared Function GetNewTable(ByVal DT As system.data.DataTable, ByVal strCondition As String) As DataTable
    Dim TempDT As system.data.DataTable= DT.Clone()
    Dim Rows As system.data.DataRow() = DT.[Select](strCondition)

    For Each DR As system.data.DataRow In Rows
        TempDT.ImportRow(DR)
    Next

    Return TempDT
End Function

调用
dim dt as system.data.DataTable = GetNewTable(foxtable.datatables("表A").basetable,“某查询条件”)

--  作者:new4w
--  发布时间:2019/12/17 17:12:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_20191217_170937.jpg
图片点击可在新窗口打开查看

这个不对啊,前面提醒模块方法不能为share,我直接将Private Shared 改为了 public,但是也不对,确定不了,麻烦老师了

--  作者:有点蓝
--  发布时间:2019/12/17 17:43:00
--  
Private Shared改为public Shared 。其它代码请认真看4楼,照搬
--  作者:new4w
--  发布时间:2019/12/17 18:10:00
--  
找到原因了,4楼第一行 不对,应当是As system.data.DataTable

但是现在又出现问题了,生成的这个system.data.DataTable 跟狐表的datatable不是一个东西,用不了狐表的datatable的相关方法,如何解决这个?

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_20191217_180657.jpg
图片点击可在新窗口打开查看

有没有转换方法?


--  作者:有点蓝
--  发布时间:2019/12/17 20:46:00
--  
没有办法解决,也没有任何办法转换。如果需要使用临时表,Foxtable有FIll方法,也有DataTableBuilder,还可以使用SQLcommand。