有可能吗?怎么样?
答案 0 :(得分:0)
取决于您与DBGrid链接的数据集。 TClientDataset可以。
答案 1 :(得分:0)
如果TDBGrid连接到内存数据集,您可以。您可以通过ID查询数据库中所选记录,同时使用您获得的结果(内存中)修改它(选定记录)。
答案 2 :(得分:0)
DBGrid中DataSource的DataSet是什么?
如果您正在使用ADOConnection,并使用ADOTable或ADOQuery作为DataSet,那么您可以尝试以下脚本:
ADOTable1.close;
ADOTable1.open;
或
ADOQuery1.close;
ADOQuery1.open;
上面的那些脚本将刷新整个DBGrid。
只要我知道,现在有办法在DBGrid中刷新一条记录。如我错了请纠正我。 :)
答案 3 :(得分: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;
答案 4 :(得分:0)
您可以使用输入框询问特定的获取值,以查找要编辑的内容,然后可以使用locate函数找到它,如果找到,则进行编辑和发布
Var
sRegisterNo, sAnswer : string;
Begin
sAnswer := Inputbox('Registerno', 'Enter the user's 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;