delphi删除按钮代码问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:29:18
我做了个窗体,上面“删除”按钮代码:
// 是否只剩下一个帐号
if DDMain.ADOQ_Userdelete.RecordCount<=1 then begin
Application.MessageBox('这是系统中唯一的帐号,不能删除。',
PChar(Application.Title), MB_OK + MB_ICONWARNING);
exit;
end;
// 确认删除
if Application.MessageBox('确实要删除此登录帐号吗?',
PChar(Application.Title), MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
if DDMain.ADOQ_Userdelete.active and (not DDMain.ADOQ_Userdelete.IsEmpty) then
DDMain.ADOQ_Userdelete.Delete;
end;
现在的问题是:运行后无论在DBGrid1上怎么选择,都只能删除数据表中第一个数据,而且删除完了以后DBGrid1没刷新。。。请问高手要怎样才能删除你选择的数据行,而且删除完后表刷新
2楼,你把ADOQ_Userdelete关了再delete,系统报错啊!

先用Locate函数定位到哪一条记录,然后再删除,你再试试看
DDMain.ADOQ_Userdelete.Locate(字段名,值,[loPartialKey]);

很简单啊

ADOQuery1.delete; //删除
ADOQuery1.Refresh; //刷新

其他自己加吧

with DDMain.ADOQ_Userdelete do
begin
close;
sql.clear;
sql.add('select * from table');
open;
if RecordCount<=1 then
begin
Application.MessageBox('这是系统中唯一的帐号,不能删除。',
PChar(Application.Title), MB_OK + MB_ICONWARNING);
exit;
end;

//前面的代码没有问题。
//改写删除代码
if Application.MessageBox('确实要删除此登录帐号吗?',
PChar(Application.Title), MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
delete;
close
open;
end;
end;