tanytany 发表于 2020-2-12 07:00:51

新手求助,希望这里的大神能帮看看谢谢!(关于ADOquery1.SQL.Text:='Update)修改...

网上找找,找到鱼C了,希望这里的大神能帮看看,谢谢!
我做了个更新数据的窗体,用的是ACCESS数据库,控件是DBGridEh,问题是,点修改时,数据会更新,但是会将表内有的所有数据修改,也就是表内有多少行就是将全部的于修改成为一样的内容,麻烦高手帮看看,谢谢!(年纪有点大,万望有高手能耐心指导下,谢谢!

代码如下:
//点击DBGridEh表,将值显示在edit栏:
procedure TForm3.DBGridEh1DblClick(Sender: TObject);

begin
datetimepicker1.DateTime:=dbgrideh1.DataSource.DataSet.FieldValues.FieldName];
edit1.text:=dbgrideh1.DataSource.DataSet.FieldValues.FieldName];
edit2.text:=dbgrideh1.DataSource.DataSet.FieldValues.FieldName];
combobox1.Text:= dbgrideh1.DataSource.DataSet.FieldValues.FieldName];
BitBtn3.Enabled:=True;
end;

//修改更新

procedure TForm3.BitBtn3Click(Sender: TObject);
begin
   With ADOQuery1 do
   begin
   ADOquery1.Close;
   ADOquery1.SQL.Clear;
   ADOquery1.SQL.Text:='Update jhlb SET =:date,完成状态=:完成状态,是否完成=:是否完成,计划内容=:计划内容 where id';
   ADOquery1.Parameters.ParamByName('date').Value:=datetostr(DateTimePicker1.Date);
   ADOquery1.Parameters.ParamByName('是否完成').Value:=combobox1.Text;
   ADOquery1.Parameters.ParamByName('计划内容').Value:=edit1.Text;
   ADOquery1.Parameters.ParamByName('完成状态').Value:=edit2.Text;
   ADOQuery1.ExecSQL;
   ADOquery1.Close;
   ADOquery1.SQL.Clear;
   ADOquery1.SQL.Add('SelectID as ID,date as 日期,计划内容 as 工作计划,完成状态 as 完成状态,是否完成 as 完成情况 From jhlb where id');
   ADOquery1.Open;
end;
BitBt

https://ftpbbs.bccn.net/006/month_2002/20200212_977087c8ec3fac5ad121zveLdFfQoHma.jpg
https://ftpbbs.bccn.net/006/month_2002/20200212_8571878cc49ddd711998WTzVBSNQWkTY.jpg.thumb.jpg

心驰神往 发表于 2020-12-2 09:05:55

我这样写也是变成了这种东西

张育玮 发表于 2020-12-4 17:28:01

这是因为Delphi7的问题,你换成Delphi 2010就可以了

张育玮 发表于 2020-12-4 17:29:26

这是因为Delphi7的问题,你换成Delphi 2010就可以了
页: [1]
查看完整版本: 新手求助,希望这里的大神能帮看看谢谢!(关于ADOquery1.SQL.Text:='Update)修改...