delphi 做系统时遇到的小小问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:31:45
procedure TForm15.Button4Click(Sender: TObject);
begin
if combobox1.Text='栋号' then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 财产管理 where 栋号=:TTname');
adoquery1.Parameters.ParamByName('TTname').Value:=edit1.Text;
adoquery1.Open;
end;
if combobox1.Text='房间号' then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 财产管理 where 房间号=:TTname');
adoquery1.Parameters.ParamByName('TTname').Value:=edit1.Text;
adoquery1.Open;
end;
end;

这段 查询代码没问题 我想问的是 如何在查不到 怎么返回一个消息框说资料没有找到 另外就是 怎么让这个查询窗体关闭后 再打开 显示所有记录 而不是最后一次查询所找到的记录

adotable1.Append;
adotable1.FieldByName('学号').AsString:=edit1.Text;
adotable1.FieldByName('姓名').AsString:=edit2.Text;
adotable1.FieldByName('日期').AsString:=

第一个问题:
要在查询窗口再打开后显示所有记录.那应该在这个查询窗口的onshow事件里面把所有的记录显示一下就行了.

第二个问题:
你在进行操作的时候添加这样一段
try
你的代码
except
on e:exception
返回消息窗口
end;
end;

但第二个问题不建议这么做.正常的做法是在往数据库写之前判断每个edit格式是否有错.一个个判断提示.这样做是友好的.

QQ:99372297 注明

1。查不到,返回消息提示:在你的查询结束后添加这样的判断:
如:
.......
adoquery1.open;
if adoquery1.recordcount = 0 then
showmessage('没有符合条件的资料!');

2.你的窗体关闭后重新打开会显示‘最后一次查询所找到的记录 ’,是因为你改变了dbgrid相关联的dateset裏面的数据。你可以用另一个query来做你查询,而不需要在formshow裏再写一下查询。
3。可以这样:
......
try
adoquery1.open;
except on e:exception do
showmessage('添加出错:'+ E.message);//这样可以返回系统错误讯息
end;