新手求助,谢谢!(关于ADOquery1.SQL.Text:='Update)修改数据的问题!
我做了个更新数据的窗体,用的是ACCESS数据库,控件是DBGridEh,问题是,点修改时,数据会更新,但是会将表内有的所有数据修改,也就是表内有多少行就是将全部的于修改成为一样的内容,麻烦高手帮看看,谢谢!(年纪有点大,万望有高手能耐心指导下,谢谢!
)代码如下://点击DBGridEh表,将值显示在edit栏:
procedure TForm3.DBGridEh1DblClick(Sender: TObject);
begin
datetimepicker1.DateTime:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[1].FieldName];
edit1.text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[2].FieldName];
edit2.text:=dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[3].FieldName];
combobox1.Text:= dbgrideh1.DataSource.DataSet.FieldValues[dbgrideh1.Columns[4].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]=: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('Select ID as ID,date as 日期,计划内容 as 工作计划,完成状态 as 完成状态,是否完成 as 完成情况 From jhlb where id');
ADOquery1.Open;
end;
BitBtn3.Enabled:=false;
end;