我想删除在 TDBAdvGrid 中显示的多个选定记录。通过选中它们前面的复选框来选择许多记录。单击删除按钮后,它会触发如下过程。它成功返回所选行的值,只有删除所有记录的问题。它只删除第一个选定的记录。
procedure TForm5.Button3Click(Sender: TObject);
var
i,j,idn: Integer;
State: Boolean;
begin
j := 0;
for i := 1 to DBAdvGrid1.RowCount - 1 do
begin
if DBAdvGrid1.GetCheckBoxState(1,i,state) then
begin
if state then
begin
idn := StrToInt(DBAdvGrid1.Cells[6,i]);
UniQuery1.SQL.Text := 'Delete from userplays where id = :id';
UniQuery1.ParamByName('id').AsInteger := idn;
UniQuery1.ExecSQL;
end;
end;
end;
end;
它只删除阵容中的第一条记录。删除第一条记录后,它会中断 for 循环,并且在删除后控制返回到 TDBAdvGrid 并更新数据。