Foxtable(狐表)用户栏目专家坐堂 → [求助] 禁止增加相同记录到服务器表中


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

主题:[求助] 禁止增加相同记录到服务器表中

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


加好友 发短信
等级:小狐 帖子:301 积分:2547 威望:0 精华:0 注册:2018/11/15 12:35:00
[求助] 禁止增加相同记录到服务器表中  发帖心情 Post By:2020/5/30 12:55:00 [只看该作者]

老师,

要在以下Foxtable 表list 增加记录保存时,如果表list 中的记录跟如下SQL 服务器表Data 所有列的内容相同时,就出现提示 “已经相同的记录存在了”

麻烦帮忙解答一下,十分感谢。


Foxtable 表list 结构如下:
FSupID FItemID  FUnitID  FStartQty FEndQty FCyID FDiscount FQuoteTime  FDisableDate
0 12 64 0 0 1 0 2019/3/27  2100/1/1
0 33 64 0 0 1 0 2019/3/27  2100/1/1
0 55 81 0 0 1 0 2019/3/27 2100/1/1
0 33 64 0 0 1 0 2019/12/9 2100/1/1




SQL 服务器表Data结构如下:

FItemID  FUnitID  FStartQty  FEndQty  FCyID
12 64 0 0 1
33 64 0 0 1
55 81 0 0 1
33 64 0 0 1


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/30 14:15:00 [只看该作者]

For Each dr1 As DataRow In DataTables("list").datarows
    Dim 
dr2 As DataRow = DataTables("
Data").find("FItemID='" & dr1("FItemID") & "' and FUnitID='" & dr1("FUnitID") & "' and .....自己补齐其它列......")
    if dr2 isnot nothing then msgbox("
已经相同的记录存在了")
Next

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


加好友 发短信
等级:小狐 帖子:301 积分:2547 威望:0 精华:0 注册:2018/11/15 12:35:00
  发帖心情 Post By:2020/5/30 14:50:00 [只看该作者]

老师,谢谢,不过Data 不在Foxtable中,是在后台服务器上,是不是 牵涉到SQLCommand。

另外这个表Data资料很多,而List表不多,如何可以加快速度,请老师指导。谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/30 15:01:00 [只看该作者]

如果2个表在同一个数据库里,直接使用SQL处理即可。

否则DataTables("Data").find改为使用SQLCommand就行了

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


加好友 发短信
等级:小狐 帖子:301 积分:2547 威望:0 精华:0 注册:2018/11/15 12:35:00
  发帖心情 Post By:2020/5/30 15:06:00 [只看该作者]

老师 DataTables("Data").find 如何改, 有点不懂。谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/30 15:13:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:301 积分:2547 威望:0 精华:0 注册:2018/11/15 12:35:00
  发帖心情 Post By:2020/5/30 15:45:00 [只看该作者]



老师,请指点,有点乱了,谢谢。

For Each dr1 As DataRow In DataTables("list").datarows
          Dim ld As Integer
        Dim cmd As New SQLCommand  
        cmd.C
        cmd.CommandText = "Se lect * From {t_SupplyEntry}"
          ld = cmd.ExecuteScalar()
      Dim dr2 As DataRow = DataTables("Data").find("FItemID='" & dr1("FItemID") & "' and FUnitID='" & dr1("FUnitID") & "' and .....自己补齐其它列......")
    if dr2 isnot nothing then msgbox("
已经相同的记录存在了")
Next


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107754 积分:548109 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/30 16:10:00 [只看该作者]

For Each dr1 As DataRow In DataTables("list").datarows
          Dim ld As Integer
        Dim cmd As New SQLCommand   
        cmd.ConnectionName = "数据源名称"
        cmd.CommandText = "Select count(*) From {t_SupplyEntry} where 
FItemID='" & dr1("FItemID") & "' and FUnitID='" & dr1("FUnitID") & "' and .....自己补齐其它列......"
          ld = cmd.ExecuteScalar()
    if ld > 0 then msgbox("已经相同的记录存在了")
Next

 回到顶部