Foxtable(狐表)用户栏目专家坐堂 → 用SQGL2008用ADO新增保存自动复制二表数据,太怪


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

主题:用SQGL2008用ADO新增保存自动复制二表数据,太怪

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
用SQGL2008用ADO新增保存自动复制二表数据,太怪  发帖心情 Post By:2025/4/3 11:02:00 [只看该作者]


这个一保存,能生成相同主表和明细表的记录,相当更复制一条记录,狐表太神?让我写代码,可能要费力,可狐表做到?不知道什么原因?


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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/3 11:03:00 [只看该作者]

'保存主表
Dim dt As DataTable = e.Form.Controls("Table1").Table.DataTable
Dim dtb As System.Data.DataTable = dt.basetable.Copy '
dtb.Columns.Remove("_Locked") '
dtb.Columns.Remove("System_Sort_Temporary")
dtb.Columns.Remove("System_Filter_Temporary")
dtb.Columns.Remove("System_Filter_Unique")
Dim res = db.UpFFdateDataTable(dtb, "GE")'保存
dt.AcceptChanges()
'
Dim dt2 As DataTable = e.Form.Controls("Table2").Table.DataTable
Dim dtb2 As System.Data.DataTable = dt2.basetable.Copy '
dtb2.Columns.Remove("_Locked") '
dtb2.Columns.Remove("System_Sort_Temporary")
dtb2.Columns.Remove("System_Filter_Temporary")
dtb2.Columns.Remove("System_Filter_Unique")
Dim res2 = db.UpFFFdateDataTable(dtb2, "FF")'保
dt2.AcceptChanges()


'保存成功后-提示
MessageBox.Show("保存成功!")
执行这个代码,太神

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/3 11:06:00 [只看该作者]

买一送一图片点击可在新窗口打开查看

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


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


加好友 发短信
等级:超级版主 帖子:113216 积分:576509 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/4/3 11:09:00 [只看该作者]

如果使用的自增主键,不要使用AcceptChanges这种用法,而是每次保存后都需要重新加载一次数据

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/3 11:41:00 [只看该作者]

问题一:把下面二行删除后,保存,还是一样复制一条,查看SQGL2008后台,就一条记录,但狐表上显示是2条重复数据,不为什么?
dt2.AcceptChanges()
dt.AcceptChanges()


问题二:从引用窗口导入登记窗口,导入成功,登记窗口无显示,需重新打开窗口才能看见,这个为什么?如图
Dim Cols3() As String = {"编号", "名称"}'
Dim Cols4() As String = {"编号", "名称"}'

Dim dh As String = Tables("窗口_Table1").Current("编号") '
For Each dr3 As DataRow In DataTables("引用窗口_Table1").Select("[选中] = 1 ")'
    If DataTables("登记窗口_Table2").Find("单号 = '" & dr3("单号") & "'And 编号 = '" & dh & "'") Is Nothing Then '禁
        Dim dr4 As Row = Tables("登记窗口_Table2").AddNew() '

        For r As Integer = 0 To Cols3.Length - 1
            dr4(Cols4(r)) = dr3(Cols3(r)) 
        Next
    Else
        MessageBox.Show("已经存在相同行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If 
Next


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


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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/3 11:53:00 [只看该作者]

1.引入窗口导入登记窗口的方法,就有禁止重复,但上面执行失效?
2.编号也用网络编号,通过服务端传入,也是在避免重复,但上面执行失效?

从上面问题来看,编号也用网络编号,通过服务端传入,对狐表也是无效,这个可能以狐表是单机,不是并发,多线程,当然高手可用多线程写,但对普通人来说是很难

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


加好友 发短信
等级:超级版主 帖子:113216 积分:576509 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/4/3 12:07:00 [只看该作者]

1、保存前看看有几行数据

Dim dt As DataTable = e.Form.Controls("Table1").Table.DataTable
msgbox(dt.datarows.count)

2、"登记窗口_Table2"是不是做了筛选?导入的数据不符合筛选条件当然是看不到的

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/3 13:30:00 [只看该作者]

上面问题,很大可能是狐表错乱,

之前用MYSQGL5.7开发没有上面问题,由今天SQGL2008开发出错问题,就再测试MYSQGL5.7开发也发生上面问题。

为什么会怀疑狐表问题,因SQGL2008开发在没修改代码之前有备份一个,没发生上面问题,发生上面问题,用之前备份那一个,测试是正常,尝试修改发生上面问题的代码,结果发生上面问题,再把代码改回来,却回不来,一直是上面发生问题


还有修改审核窗口的上面加载代码,怎么会影响登记窗口上的代码运行,这二个窗口的代码是不一样,

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


加好友 发短信
等级:超级版主 帖子:113216 积分:576509 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/4/3 13:33:00 [只看该作者]

请上传实例说明

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


加好友 发短信
等级:六尾狐 帖子:1423 积分:9511 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2025/4/3 14:29:00 [只看该作者]

还有一个SQLG带参数的问题,没有带数还可以

 回到顶部