用DBGrid.DataSource.DataSet.Delete方法只是表面删除了DBGrid的数据,但是查询数据库发现刚被删除的数据却依然存在,请问如何可以在删除DBGrid显示数据的同时可以删除数据库中的数据?另外,在绑定数据到DBGrid后,如何在不对DBGrid做任何Click操作的情况下,默认获得当前DBGrid的第一行第一列的数据?

解决方案 »

  1.   

    你执行完语句后没有POST,当然没有删除掉的。
    如果到表格第一行简单啊,可以设置当GRID得到焦点时,停留在第一行啊,这些东西要写在事件里的,很简单,你看看就OK了 :)
      

  2.   

    wanghome(王鸿) ( ) 说的不对.楼主你可能用的批量提交ltbatchstatic是吗?
            如果是的,用了delete还要updatebatch
      

  3.   

    我一直用SQL
    还是用SQL吧
    DELETE FORM 表 where 条件
    这样多好
    用QUERY
      

  4.   

    小弟我用了下面两条语句,在运行到Post处,但是报出的错位是,当前未处在“Edit和Insert状态中”,
        Main.DBGrid.DataSource.DataSet.Delete();
        Main.DBGrid.DataSource.DataSet.Post();
    这是什么原因呢?
      

  5.   

    没有设置为可编辑状态
    DBGrid.DataSource.DataSet.Edit;
    DBGrid.DataSource.DataSet.Append;第一条
    DBGrid.DataSource.DataSet.first;
    向删除数据库种:
    DBGrid.DataSource.DataSet.Post;
    clientdataset1.applyupdate(0);
      

  6.   

    我觉得是不是你的数据集启动了缓存啊
    需要updatebatch啊
      

  7.   

    如果你没有将CACHEDUPDATE设为TRUE,就可以直接DELETE的.不必再用POST.
      

  8.   

    原因是没有提交到数据库,DataSet并不是直接往数据库里更新的,他需要进行提交,否则紧紧是标识了一下,就好像执行数据库操作要commit一样,原理就是这样,明白了吧!
      

  9.   

    delete 删除的话可以直接删除的不需要 post的
      

  10.   

    可能用的批量提交ltbatchstatic,还要updatebatch