我有个表,需要实时刷新数据。我做了个思路,在SQL表里面添加了一个标志,初始状态为0,然后用户的窗口在timetick事件里面按一秒做一次检测,发现数值变为1就自动刷新,然后再把数值归0,但是奇怪的是不会执行刷新事件?
过程如下:
A主机添加记录后,把数值设置为1
Dim sx As DataRow = DataTables("机台设置").sqlfind("机台名称= '" & jt & "'")
If sx IsNot Nothing Then
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "upd&te {机台设置} set 刷新=1 WHERE 机台名称 = '" & jt & "'"
cmd.ExecuteNonQuery()
DataTables("机台设置").Load()
end if
B主机的timetick事件 (检测sql中的数值是否为1,如果是就刷新表,然后把数值归0)
Dim sx As DataRow = DataTables("机台设置").SQLFind("机台名称= '" & _machine & "'")
Dim val As Integer
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Se/ect 刷新 From {机台设置} Where 机台名称= '" & _machine & "'"
val = cmd.ExecuteScalar()
If sx IsNot Nothing Then
If val = 1 Then
DataTables("排单表").Load
Tables("排单表").Filter = "[机台] = '" & _machine & "' and 数量>=已入库数量"
Tables("排单表").Sort = "优先级 DESC"
Dim cmd1 As New SQLCommand
cmd1.C
cmd1.CommandText = "upd&te {机台设置} set 刷新 =0 Where 机台名称= '" & _machine & "'"
cmd1.ExecuteNonQuery()
DataTables("机台设置").Load()
End If
End If
问题是排单表并没有刷新?跟踪了sql表,发现A主机数据变动的时候,数值有变1,然后B主机有重置数值,但是不刷新数据?
[此贴子已经被作者于2024/11/15 2:01:45编辑过]
DataTables("排单表").Load试试改为
DataTables("排单表").Loadfilter = ""
DataTables("排单表").Loadtop=nothing
DataTables("排单表").Load
还会不会有C主机也执行了同样的操作?