Dim drs As List(Of DataRow) = DataTables("入库明细").SQLSelect("入库日期 >= '" & dt1 & "' And 入库日期 <= '" & dt2 & "' and 供应商 = '" & gys & "' and 审核='已审核'")
For Each dr1 As DataRow In drs
dr1("过账") = False
Next
DataTables("入库明细").SQLUpdate(drs)
DataTables("入库明细").load
msgbox("反过账完成!")
End If
这段代码是更新后台数据的状态(逻辑值)。问题在于执行的时候,第一次可以,状态有变,第二次不行。第三次又可以,第四次不行。不知道错在哪里?感觉代码没有问题啊?
特别说明,不行的时候,看了sql后台数据,确实没更新。
老师好,
msgbox(drs.count)返回值都是正确的。除了状态没有改变。仍然是按1,3,5可以。2,4,6不行的情况
如果使用的是SqlServer数据库,跟踪一下2,4,6的时候后台数据库执行了什么sql
Dim drs As List(Of
DataRow) = DataTables("入库明细").SQLSelect("入库日期 >= '" & dt1 &
"' And 入库日期 <= '" & dt2 & "' and 供应商 = '" & gys & "'
and 审核='已审核'")
For Each dr1 As DataRow In drs
dr1("过账") = False
Next
DataTables("入库明细").SQLUpdate(drs) 后台保存了,客户端呢?
DataTables("入库明细").load load会先保存本地的数据至SQL然后再从数据库加载至本地,可以试试load(false)
msgbox("反过账完成!")
客服端需要刷新表内容才能看到数据库里面修改了的最新数据