可能吗?如何?
问问题
3173 次
5 回答
0
取决于您与 DBGrid 链接的数据集。TClientDataset 可以。
于 2010-02-22T14:40:57.563 回答
0
DBGrid 中 DataSource 的 DataSet 是什么?
如果您使用 ADOConnection,并使用 ADOTable 或 ADOQuery 作为数据集,那么您可以尝试以下脚本:
ADOTable1.close;
ADOTable1.open;
或者
ADOQuery1.close;
ADOQuery1.open;
上面的那些脚本将刷新整个 DBGrid。
据我所知,现在有办法刷新 DBGrid 中的一条记录。如我错了请纠正我。:)
于 2013-10-25T22:43:26.737 回答
0
如果 TDBGrid 连接到内存数据集,则可以。您将通过 ID 查询数据库以获取所选记录,同时使用您获得的结果(内存中)修改它(所选记录)。
于 2010-05-24T21:28:24.267 回答
0
您可以使用输入框询问特定内容,获取值以查找您要编辑的内容,然后您可以使用定位功能找到它,如果找到,您可以编辑并发布
Var
sRegisterNo, sAnswer : string;
Begin
sAnswer := Inputbox('Registerno', 'Enter the user registerNo you want to edit' , '' );
With dmName do
Begin
sRegisterNo := tblMembers['RegisterNo'];
If sRegisterNo.locate(sAnswer, 'sRegisterNo') = True then
Begin
tblMembers.edit;
// Use edits to give the new values
// Ex. EdtRegisterno.text := RE001;
tblMembers.post
End;
End;
End;
于 2018-10-28T17:05:37.657 回答
0
刷新前需要保存ID,然后通过将光标定位在旧Record中找到相同的ID。像这样:
procedure TForm1.refreshQuery;
var
oldID: integer;
begin
oldID :=query1Id_table.AsInteger;
query1.Refresh;
//or if refresh not works
//query1.close;
//query1.open;
query1.Locate('Id_table',oldID,[]);
end;
或依赖于DataSet,看看这个函数是否有效:
query1.RefreshCurrentRow;
于 2018-10-27T17:03:14.227 回答