有两个窗体,一个是用来添加用户(form2),另一个是用来删除用户(form3)每个窗体都有一个dbgrid显示用户ID.
但现在问题是如果在form2中添加后打开form3窗体数据没有刷新出刚添加的数据,必须要执行一次删除后才能刷新出.
同理先删除,后添加也出现同样问题
代码如下
procedure tform2.newll;
begin
form2.query1.close;
form2.query1.SQL.Clear;
form2.query1.sql.add('select [user] from [user]');
form2.query1.open;
end;procedure TForm2.Button1Click(Sender: TObject);
var yhm,mm,sqlstr:string;
begin
yhm:=trim(edit1.Text);
mm:=trim(edit2.Text);
if length(yhm)<1 then
showmessage('the ID is empty');
if length(mm)<1 then
showmessage('the password is empty');
if (length(yhm)>0) and (length(mm)>0) then
begin
sqlstr:='select * from [user] where ([user]='''+yhm+''')';
 query1.close;
 query1.sql.Clear;
 query1.sql.Add(sqlstr);
 query1.open;
 if query1.recordcount>0 then
  showmessage('the ID has been registered pleasse choose another')
  else
  begin
  sqlstr:='insert into [user] values('''+yhm+''','''+mm+''')';
  query1.close;
  query1.sql.Clear;
  query1.sql.Add(sqlstr);
  query1.execsql;
  showmessage('the ID is added');
  form2.newll;
   end;
   end;
end;procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 action:=cafree;
  form2:=nil;
end;/////////////////////////////////////////////////3
procedure tform3.newll;
beginquery1.close;
query1.sql.clear;
query1.sql.add('select [user] from [user]');
query1.open;
end;procedure TForm3.BitBtn1Click(Sender: TObject);
//var sqlstr:string;
begin
if edit1.Text='admin'
then
begin
if messagedlg('Are you sure to delete the ID?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
 query1.close;
 query1.sql.clear;
 query1.sql.add('delete from [user] where [user]='''+edit2.Text+'''');
 query1.execsql;
 form3.newll;
 dbgrid1.Refresh;
end;end
else
showmessage('the action needs password');
end;
procedure TForm3.DBGrid1CellClick(Column: TColumn);
begin
//form3.newll;
edit2.Text:=query1.Fieldbyname('user').AsString;
end;procedure TForm3.FormCreate(Sender: TObject);
begin
form3.newll;end;procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 action:=cafree;
  form3:=nil;
end;