Foxtable(狐表)用户栏目专家坐堂 → 克隆当前行问题


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

主题:克隆当前行问题

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


加好友 发短信
等级:幼狐 帖子:127 积分:1463 威望:0 精华:0 注册:2014/10/15 11:39:00
克隆当前行问题  发帖心情 Post By:2016/2/28 22:02:00 [只看该作者]

举例如:
订单表Tb_Order,主键为订单号:order_id

对于已存在一个订单号为:A001的数据,进行克隆行操作
If CurrentTable.Current IsNot Nothing Then
    CurrentTable.Current.Clone()
End If

提示主键值A001已存在

按道理说:这个只是在Tables中加一行,并没有真正保存吧?

请问如何改进实现,排除逐个字段赋值的方式

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/2/29 9:14:00 [只看该作者]

只能 逐个字段赋值,除非改为用自增字段做主键,然后订单号改为用唯一索引

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 9:25:00 [只看该作者]

要这样做才行。

 

Dim r As Row = CurrentTable.Current
If r IsNot Nothing Then
    Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
    Dim dr2 As DataRow = CurrentTable.DataTable.AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols1(i)) = r(Cols1(i))
    Next
End If


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


加好友 发短信
等级:幼狐 帖子:127 积分:1463 威望:0 精华:0 注册:2014/10/15 11:39:00
  发帖心情 Post By:2016/2/29 22:43:00 [只看该作者]

这个列名的数组有办法自动获取到吗?
也就是获取order表的所有列名,转换成一个数组

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 22:57:00 [只看该作者]

Dim r As Row = CurrentTable.Current
If r IsNot Nothing Then
    Dim dr2 As DataRow = CurrentTable.DataTable.AddNew()
    For Each c As Col In CurrentTable.Cols
        If c.name <> "第二列" Then
            dr2(c.name) = r(c.name)
        End If
    Next
End If

 


 回到顶部