cmd.CommandText = "UPPDATE TbCorrect Set CV = ( Se1ect sum(BackV) From TbCorrectD Where TbCorrectD.CorrectID = 'xxx' ) where id = 'xxx'"
cmd.ExecuteNonQuery
提示错误:操作必须使用一个可更新的查询
现在使用access做数据库
[此贴子已经被作者于2025/2/16 22:31:13编辑过]
还是不行哦,提示操作必须使用一个可更新的查询upPdate TbCorrect as a inner join (Se1ect CorrectID,sum(BackV) as XV From TbCorrectD where CorrectID = 'xxx' group by CorrectID) as b on a.id = b.CorrectID Set a.CV = b.XV where a.id = 'xxx'
这个在杂项>执行>SQL执行,运行还是会报错
[此贴子已经被作者于2025/2/16 23:04:17编辑过]

不会啊,主表有ID的,它是一个数据表,不是查询表
明细表的ID是空值倒是真的,但主表的ID不是空值
是不是跟数据库是access有关?
[此贴子已经被作者于2025/2/16 23:35:12编辑过]
我把TbCorrect的ID列设为了主键,还是执行不了哦依然报错为
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2025.1.3.1
错误所在事件:
详细错误信息:
操作必须使用一个可更新的查询。
cmd.CommandText = "upPdate TbCorrect as a inner join (Se1ect CorrectID,sum(BackV) as 合计 From TbCorrectD where CorrectID = '" & mainid & "' group by CorrectID) as b on a.id = b.CorrectID Set a.CV = b.合计 where a.id = '" & mainid & "'"
[此贴子已经被作者于2025/2/17 10:14:01编辑过]
设置主键后保存一下,然后到后台数据库测试一下sql是否可以执行
那就是不支持子查询。分开2次执行吧。先获取统计值,再更新