下面是我写的添加代码,当我点了添加以后,dbgrid成为空白,非要退出再重新进才能看到内容,请问是什么原因,我想要的效果是,点添加后马上就能再dbgrid中显示出来 
 var
  tt:string;
begin
 if edit6.Text=''  then
 showmessage('没有内容需要保存!')
 else
 begin
 tt:=datetostr(datetimepicker1.date);
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('insert into tj(rq,jth,bc,ygbh1,xm1,ygbh2,xm2,hpbh,dz,bzcl,ybzcl,ddh,yps,hzyy,ylyy,jqyy,rwyy,blp,dehj,jfzl,sjyl,sjjf)');
  adoquery1.SQL.Add('values('''+tt+''','''+edit1.text+''','''+combobox1.text+''','''+edit2.text+''','
  +''''+edit3.text+''','''+edit4.text+''','''+edit5.text+''','''+edit6.text+''','''+edit7.text+''','''+edit8.text+''','
  +''''+edit9.text+''','''+edit10.Text+''','''+edit11.text+''','''+edit12.text+''','''+edit13.Text+''','''+edit14.Text+''','
  +''''+edit15.Text+''','''+edit16.text+''','''+edit17.text+''','''+edit18.text+''','''+edit19.text+''','''+edit20.text+''')');
  ADOquery1.Execsql;

解决方案 »

  1.   

    你不要用SQL语句直接插入,可以通过数据集的insert ;Post等操作
      

  2.   

    ADOquery1.Execsql;
    datasource.dataset:=adoquery1;看看你的grid的datasource属性值不是已经指定datasource
      

  3.   

    把你GRID后头的DATASET刷新一下;用FORMAT和QUOTEDSTR吧,那样写看到感觉好点
      

  4.   

    在做一次select 于 open;
      

  5.   

    dataset.append;
    。。
    dataset.post;
      

  6.   

    close后重新OPEN在后面再写上。
    with Adoquery1 do
    begin
      close;
      Sql.clear;
      sql.add(select * from tj);
      open;
    end;
      

  7.   

    datasource属性值已经指定了datasource