各位大神:
我在使用ADO連接ACCESS資料庫時,用了DBGRID顯示資料,想要點擊DBGrid1中的某一行,點擊洗掉按鈕后洗掉選中的那一行,使用的代碼如下:
procedure TForm1.btn4Click(Sender: TObject);
begin
with qry1 do
begin
close;
Active:=True;
Edit;
Delete;
Update;
end;
end;
但在實際操作中時,不管我選中的哪一行,它刪掉的資料總是第一行資料
uj5u.com熱心網友回復:
按照你的代碼,連接哪一種資料庫都是洗掉第一行不用CLOSE,直接DELETE就可以了
if Notqry.Eof then
qry.DELETE;
這樣就可以了
uj5u.com熱心網友回復:
你使用close,資料當前行就進入第一行了,再Delete洗掉當前行,就洗掉了第一行。建議代碼:
procedure TForm1.btn4Click(Sender: TObject);
begin
with qry1 do
begin
Delete;
end;
end;
uj5u.com熱心網友回復:
if not qry1.IsEmpty thenqry1.delete;
uj5u.com熱心網友回復:
當你Close再Active 游標自動定位在第一條了uj5u.com熱心網友回復:
這3行都是多余的,close是錯刪資料的根本原因:close;
Active:=True;
Edit;
uj5u.com熱心網友回復:
close;Active:=True;
表示先關閉,再打開,所以一直是第一條,你可以打開sql monitor跟蹤一下陳述句。
uj5u.com熱心網友回復:
這樣就可以了。。。。uj5u.com熱心網友回復:
洗掉某一行,必須加where條件判定啊,這樣能洗掉是不對地。像 with qry1 do delete;是錯誤的uj5u.com熱心網友回復:
選中某行,直接delete,哪里還需要close,activeuj5u.com熱心網友回復:
年關了,樓主該結帖了。uj5u.com熱心網友回復:
基本都是問完就跑,哇哈哈哈uj5u.com熱心網友回復:
with qry1 dobegin
close; 把qry1關閉了
Active:=True;
Edit;
Delete; 這里洗掉的不是你選中的那條記錄了,資料集打開時,默認是第一條。
Update;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44334.html
標籤:數據庫相關
上一篇:求教一個DELPHI 中將自定義結構的變數存入SQL的問題
下一篇:求幫忙下載
