同题

解决方案 »

  1.   

    insert完,post一下,应该就出来了吧,试试
      adotable1.Insert;
      adotable1.FieldByName('field1').AsString := '111';
      ........................................ 
      adotable1.Post;
      

  2.   

    如果用SQL语句插入则必须把
    ADODataset1.Close;
    再 ADoDataset1.Open;而如果ADODataset1.Insert 或 Append 
    则在POST之后就可以增加了
      

  3.   

    对不起,刚才说错了,不是adotable控件,是adoquery控件,运行adoquery1.ExecSQL不立即显示
      

  4.   

    to kingwyj():
        那样是不是会太浪费资源了一点,重新open一次要重新查。
      

  5.   

    insert完后adotable1.close;
    adotable1.open;就行了
      

  6.   

    adoquery1.close()
    adoquery1.open()
      

  7.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('');//插入语句
    adoquery1.open;
    adoquery1.first;
    试试
      

  8.   

    你在哪里添加的数据?也是用adoquery1连接的感应控件?adoquery1.ExecSQL?
    可能是这个问题,没有试过
    ExecSQL只是通知道数据库执行了,但是原来的数据集没有更新。
    用adoquery1.open试试
      

  9.   

    query再执行一下原来的sql,dbgrid就会刷新了么。
      

  10.   

    你用
    adoquery1.Insert;
    .....
    doquery1.Post;
    来添加记录不就可以了?数据集会立即更新。如要用
    adoquery1.SQl.Clear;
    adoquery1.SQL.Add('insert ....');
    adoquery1.ExecSQL;
    来添加记录,只能
    adoquery1.Close;
    adoquery1.Open;
    来刷新纪录了。
      

  11.   

    dbgrid1.disablecontrol;
    adoquery1....
    ...
    adoquery1.refresh
    dbgrid1.enabecontrol;