Foxtable(狐表)用户栏目专家坐堂 → [求助]生成datatable


  共有2279人关注过本帖树形打印复制链接

主题:[求助]生成datatable

帅哥哟,离线,有人找我吗?
new4w
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1895 威望:0 精华:0 注册:2017/3/21 22:40:00
[求助]生成datatable  发帖心情 Post By:2019/12/17 15:08:00 [只看该作者]

需求:
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有很多方法可以使用,但是有时候根据已有数据转换起来有点麻烦,还请一定帮忙!极度感谢;

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 15:20:00 [只看该作者]

自行把代码转换为vbnet代码:http://converter.telerik.com/

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

 回到顶部
帅哥哟,离线,有人找我吗?
new4w
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1895 威望:0 精华:0 注册:2017/3/21 22:40:00
  发帖心情 Post By:2019/12/17 15:24:00 [只看该作者]

命名空间啥的,实在不会,能否直接转换一个,另外转换完了,直接在外部引用哪里引用就可以吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1895 威望:0 精华:0 注册:2017/3/21 22:40:00
  发帖心情 Post By:2019/12/17 17:12:00 [只看该作者]


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 17:43:00 [只看该作者]

Private Shared改为public Shared 。其它代码请认真看4楼,照搬

 回到顶部
帅哥哟,离线,有人找我吗?
new4w
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1895 威望:0 精华:0 注册:2017/3/21 22:40:00
  发帖心情 Post By:2019/12/17 18:10:00 [只看该作者]

找到原因了,4楼第一行 不对,应当是As system.data.DataTable

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

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

有没有转换方法?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 20:46:00 [只看该作者]

没有办法解决,也没有任何办法转换。如果需要使用临时表,Foxtable有FIll方法,也有DataTableBuilder,还可以使用SQLcommand。

 回到顶部