delphi:用dbgrid修改数据的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 05:08:34
我想要实现以下功能:在dbgrid中选择要修改的项,在下面的edit1中输入要修改的值,点击按钮后完成修改
close;
sql.Clear;
sql.Add('update 收入表 set 金额=:'je' where 金额:='xg');
parameters.ParamByName('je').Value:=edit1.Text;
parameters.ParamByName('xg').Value:=dbgrid1.SelectedField.Text;
open;
这样写对吗,最后的dbgrid1.SelectedField.Text返回的是当前选中的各种的内容吗

用两个ADOQuery
用ADOQuery1来显示dbgrid1
ADOQuery2来修改
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('update 收入表 set 金额=:je where 主KEY=:xg);
parameters.ParamByName('je').Value:=edit1.Text;
parameters.ParamByName('xg').Value:=self.ADOQuery1.fieldbyname(主KEY).AsInteger;
open;
end;
注:where 的条件一定要用主KEY 不然修改的时候会修改到多条记录。
self.ADOQuery1.fieldbyname(主KEY).AsInteger返回的是你当前dbgrid1中选中记录的主KEY值。