Foxtable(狐表)用户栏目专家坐堂 → 联合主键在Foxtable中如何实现


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

主题:联合主键在Foxtable中如何实现

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


加好友 发短信
等级:童狐 帖子:257 积分:1971 威望:0 精华:0 注册:2012/12/20 8:21:00
联合主键在Foxtable中如何实现  发帖心情 Post By:2017/5/19 9:15:00 [只看该作者]

联合主键在Foxtable中如何实现?如附件图,客户名称和业务员组合时,才是唯一,有另外一个表,要向这张表增加数据,已经存在的数据不增加,不存在的数据增加过来。

 


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

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 9:19:00 [只看该作者]

 增加之前,先查询

 

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each dr1 As DataRow In DataTables("表A").Select("")
    Dim dr2 As DataRow = DataTables("表B").Find("某列 = '" & dr1("某列") & "' and 某列 = '" & dr1("某列") & "'")
    If dr2 Is Nothing Then
        dr2 = DataTables("表B").AddNew()
        dr2("某列") = dr1("某列")
    End If
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next


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


加好友 发短信
等级:童狐 帖子:257 积分:1971 威望:0 精华:0 注册:2012/12/20 8:21:00
  发帖心情 Post By:2017/5/19 9:25:00 [只看该作者]

用Find效率会不会太低?

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/19 9:29:00 [只看该作者]

在Foxtable中不考虑使用sql,2楼已经算是最优的用法了

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 9:33:00 [只看该作者]

以下是引用yedaoan在2017/5/19 9:25:00的发言:
用Find效率会不会太低?

 

你可以在sql里面设置联合主键,输入错误的话也会有提示的。


 回到顶部