我的DBGrid在form3中,当我查询完数据关闭后,第二次执行程序,打开form3时,显示的还是上次我查询的数据,我想让程序关闭后,DBGrid也自动把数据清空,该怎么作?

解决方案 »

  1.   

    在Form3.OnShow中把DBGrid所连的Query.Close;
      

  2.   

    在FORM的 ONCLOSE事件里写 DBGRID.DataSource.DataSet.close;
      

  3.   

    用DM..这样的话只要CONNECTION没有断开的话..都是在的..
      

  4.   

    ONCLOSE事件栏里不让我写入阿。
      

  5.   

    xzhbaggio(忧郁王子-罗*巴乔)  和  dh9450(谁有我菜) 两位的方法好像不管用阿。 按你们说的作,每次显示的都一样了。
      

  6.   

    procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      adoquery1.Close;//如果你的Query组件就在本窗口中,可用这句。
                     //也可用dbgrid1.DataSource.DataSet.Close;
              //dbgrid1为你的DBgrid组件的名称。
    end;
      

  7.   

    DBGrid只是一个显示数据的控件,真正控制数据的是背后的Query或Table,只有改变了Query的SQL语句或关闭了Query或Table才能真正使DBGrid显示的数据改变或清空。
      

  8.   

    我添加了下面的代码,可还是不管用阿,下次运行程序,显示的还是上次操作的数据后的数据。procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
            ADOQuery1.Close;
    end;
      

  9.   

    窗体显示的时候:
    procedure TForm3.FormShow(Sender: TObject);
    begin
    DBGrid1.DataSource:=nil;
    end;
    想让他显示的时候就
    DBGrid1.DataSource:=她应该连接的数据源;