有两个窗体,一个是用来添加用户(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;
但现在问题是如果在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;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货