Foxtable(狐表)用户栏目专家坐堂 → MYSQL模拟关联表保存报错问题


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

主题:MYSQL模拟关联表保存报错问题

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
MYSQL模拟关联表保存报错问题  发帖心情 Post By:2023/8/19 11:08:00 [只看该作者]

'Dim db = HySq--l.DataBaseFactory.CreateDatabase("myjc")
Dim dt As DataTable = e.Form.Controls("Table1").Table.DataTable
Dim dtb As System.Data.DataTable = dt.basetable.Copy '
dtb.Columns.Remove("_Locked") '
Dim res = db.Up-dateDataTable(dtb, "cKzb")

Dim dt2 As DataTable = e.Form.Controls("Table2").Table.DataTable
Dim dtb2 As System.Data.DataTable = dt2.basetable.Copy '
dtb2.Columns.Remove("_Locked") '
Dim res2 = db.U-pdateDataTable(dtb2, "cKmx")

dt.AcceptChanges()

报错:

“违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条。“

查一下网:


accessmdb数据库动态更新的过程中,遇到了DeleteCommand出现DBConcurrencyException异常,错误:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条。

程序逻辑:遍历表1的所有行,如果符合条件,则删除表1当前行,且删除表2中的相关行(两行),并在表2中插入新的一行。由于在判断的时候需要用到表2中新插入的行,所以得在循环中实时更新。

经查找:

该错误的原因为:数据库的主键设置为-自动编号

现在用MYS-QL,出现同样问题  


此主题相关图片如下:报错并发.jpg
按此在新窗口浏览图片



没看明白,不知道如何,请老师帮助,谢谢,保存和删除也会报错



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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/19 11:18:00 [只看该作者]

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.UpdateDataTable(dtb2, "cKmx")
dt2.AcceptChanges()

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.UpdateDataTable(dtb, "cKzb")
dt.AcceptChanges()

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/19 13:04:00 [只看该作者]

    dtb2.Columns.Remove("System_Sort_Temporary")
    dtb2.Columns.Remove("System_Filter_Temporary")
    dtb2.Columns.Remove("System_Filter_Unique")
这个三行代码,没看懂,老师帮说一下,谢谢

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/19 13:51:00 [只看该作者]

临时表绑定窗口表后会自动新增一些内部使用的临时列,需要去掉,才能使用UpdateDataTable

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/19 13:58:00 [只看该作者]

在测试,发现一个问题

在将新增的数据进行保存,2楼代码是正常,但对修改的数据进行保存,会报错违反并发的提示,修改的数据进行保存改用1楼,也是报同样的错,如何解决?谢谢

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/19 14:25:00 [只看该作者]

应该是数据库,或者数据库里表格的设置有问题导致的。试试

1、不要使用自增列
2、不要使用AcceptChanges,保存后重新从数据库获取数据绑定窗口表

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/19 15:48:00 [只看该作者]

1、不要使用自增列, 好象一般主键都是自增列,还有数据库与窗口的表的交互,也会有
2、不要使用AcceptChanges,保存后重新从数据库获取数据绑定窗口表,
你说新增使用AcceptChanges,修改保存不要AcceptChanges?

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/19 16:11:00 [只看该作者]

1、其实也就Foxtable习惯使用自增主键,这个是Foxtable的开发模式制约的。我见过的其它软件很少有用这种自增主键。没有自增主键,Foxtable一样可以正常使用

2、最后全部都不用

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/8/19 16:25:00 [只看该作者]

我使用是MYSQL主键自增,  ID设为主键和外键,在窗口上录入时,看不到ID的编号,只有在关 窗口后,重新打开窗口或录入完下一个记录,上移,才看到ID的编号。
由于主键不为空,设定自增
问题一:这样比较不友好,如何解决?


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


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

自增主键只有保存了才会有真正的数据。一般自增主键都不需要看到的,也不会用来做业务关联。考虑自己做编号处理http://www.foxtable.com/webhelp/topics/2403.htm

 回到顶部
总数 25 1 2 3 下一页