全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1685
推到 Plurk!
推到 Facebook!

如何在dbgrid多重選取後,一次刪除所選取之多筆資料...??

尚未結案
weilans
一般會員


發表:1
回覆:0
積分:0
註冊:2003-03-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-02 11:11:18 IP:210.243.xxx.xxx 未訂閱
請問:    1.dbgrid選取多筆資料 2.再按Navigator的刪除 3.即刪除所選取之多筆資料    可否有案例請告知...tks
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-02 11:31:48 IP:202.39.xxx.xxx 未訂閱
1.TDBGrid 的 Options 屬性中的 dgRowSelect 及 dgMultiSelect 設 True 2,3.參考 help 中的範例如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: Integer;
  s: string;
begin
  if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        for j := 0 to FieldCount-1 do
        begin              if (j>0) then s:=s ', ';
          s:=s Fields[j].AsString;
        end;
        Listbox1.Items.Add(s);
        s:= '';
      end;
end;
--- 每個人都是一本書
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-02 11:44:23 IP:211.21.xxx.xxx 未訂閱
引言: 請問: 1.dbgrid選取多筆資料 2.再按Navigator的刪除 3.即刪除所選取之多筆資料 可否有案例請告知...tks < face="Verdana, Arial, Helvetica">
procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
var
  qry: TQuery;
  I: Integer;
  KeyField: String;
begin
  if Button = nbDelete then
  begin
    if MessageDlg('您確定要刪除這些資料嗎?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    begin
      qry := TQuery.Create(nil);
      try
        qry.DatabaseName := 'Your Alias Name';
        if DBGrid1.SelectedRows.Count > 0 then
        begin
          for I := 0 to DBGrid1.SelectedRows.Count - 1 do
          begin
            TDBNavigator(Sender).DataSource.DataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[I]));
            if KeyField <> '' then
              KeyField := KeyField ','  #39 TDBNavigator(Sender).DataSource.DataSet.FieldByName(KeyField).AsString #39
            else
              KeyField := #39 TDBNavigator(Sender).DataSource.DataSet.FieldByName('Order_No').AsString #39;
          end;
          qry.SQL.Add('Delete From TableName Where KeyField in (' KeyField ')');
          qry.ExecSQL;
          TDBNavigator(Sender).DataSource.DataSet.Close;
          TDBNavigator(Sender).DataSource.DataSet.Open;
        end;
      finally
        FreeAndNil(qry);
      end;
    end;
    abort;
  end;
end;
~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
系統時間:2024-06-27 3:03:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!