delphi ListView 更新写入
有什么方法只更新ListView其中几列的数据,如序号帐号在线/离线时间011离线2010/10/2220:01:21122在线2010/10/2220:02:00233...
有什么方法只更新ListView 其中几列的数据,如
序号 帐号 在线/离线 时间
0 11 离线 2010/10/22 20:01:21
1 22 在线 2010/10/22 20:02:00
2 33 在线 2010/10/22 20:01:00
3 44 离线 2010/10/22 20:00:00
以上内容是通过数据库得到的,Timer1事件3秒查询一次数据,现在的问题是
只更新 在线/离线 时间。帐号不需要更新,Delphi 代理如何解决? 展开
序号 帐号 在线/离线 时间
0 11 离线 2010/10/22 20:01:21
1 22 在线 2010/10/22 20:02:00
2 33 在线 2010/10/22 20:01:00
3 44 离线 2010/10/22 20:00:00
以上内容是通过数据库得到的,Timer1事件3秒查询一次数据,现在的问题是
只更新 在线/离线 时间。帐号不需要更新,Delphi 代理如何解决? 展开
1个回答
展开全部
Procedure TForm1.Timer1Timer(Sender: TObject);
Var
I: Integer;
ID: String; //帐号
Begin
Timer1.Enabled := False;
Try
With ListView1, ADOQuery1 Do
Begin
Open; //打开刷新的数据
For I := 0 To Items.Count - 1 Do
Begin
ID := Trim(Items[I].SubItems[0]); //帐号,关键字
If ADOQuery1.Locate('帐号', ID, []) Then //定位到数据集,更新
Begin
Items[I].SubItems[1] := ADOQuery1.FieldByName('状态').AsString;
Items[I].SubItems[2] := ADOQuery1.FieldByName('时间').AsString;
End;
End;
Close;
End;
Finally
Timer1.Enabled := True;
End;
End;
Var
I: Integer;
ID: String; //帐号
Begin
Timer1.Enabled := False;
Try
With ListView1, ADOQuery1 Do
Begin
Open; //打开刷新的数据
For I := 0 To Items.Count - 1 Do
Begin
ID := Trim(Items[I].SubItems[0]); //帐号,关键字
If ADOQuery1.Locate('帐号', ID, []) Then //定位到数据集,更新
Begin
Items[I].SubItems[1] := ADOQuery1.FieldByName('状态').AsString;
Items[I].SubItems[2] := ADOQuery1.FieldByName('时间').AsString;
End;
End;
Close;
End;
Finally
Timer1.Enabled := True;
End;
End;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询