从没用过DBgrid ,今天用了一下express公司的dxDBgrid ,发现只能加一行。
我把一个Dataset关联到dxdbgrid上,append后dxdbgrid就自动增加一行,可是我post后再append刚才输入的一行就消失了,怎么录都是一行,这是怎么回事呀?

解决方案 »

  1.   

    你的数据没更新到数据库中去。请检查POST时得到的异常(DATASET中有一个事件专门检测异常)。
      

  2.   

    将dxdbgrid的KEYFIELD设置为主键.
      

  3.   

    yjs_lh(长风浪子) 
    不管用,我在录完了一行后就点按钮 post 跟着append 结果数据库里保存了该记录,但是dxdbgrid里就只有新建的一行,刚才录入的一行消失了!!这tmd是怎么回事呀?? 太痛苦了!!! :(
      

  4.   

    哪位老大有这方面的代码,能否拷给我一份
    我将把我所有的分送上[email protected]
      

  5.   

    insert是一样的效果,难道是dxdbgrid控件的问题?
    dbgrid是否就没这个问题呢?
    各位谁有例子,给俺一份吧!俺精神快崩溃了
      

  6.   

    我一直用,很好用啊。看这样能不能帮到你:optionsView 中有一个选项设置,edgoIndicator设置为truedefaultFields 设置为true
    defaultlayout 设置为true
      

  7.   

    还有种可能,你的dataset设置有条件,所添加的记录均不满足你dataSet中的过滤条件。如:select * from tableName where 1<>1,为了取tableName的结构,但加入记录则会出现你说的现象
      

  8.   

    在formcreat中:
      aDdd1.CommandText := 'select * from AJHDD';   //进货单主表
      aDdd1.Active := true;
      aDdd2.CommandText := 'select * from AJHDDS order by i_id'; //进货单子表
      aDdd2.DataSource := DSdd1;
      aDdd2.MasterFields := 'JHDDNO';
      aDdd2.IndexFieldNames := 'JHDDNO';
      aDdd2.Active := true;
      ADdd1.Append;        //ADdd1是主表记录      
      ADdd2.Append;        //ADdd2是子表记录aDdd2.DataSource := DSdd1;  这句不对
    我现在把它们的关联去掉后就正常了,看来添加记录的时候不能加主子表关联,请问大家都怎么录入单据的?主子表是个录个的吗?
    以前没有经验。最好能给我一个这样的例子,相信对我帮助会很大!!!
    谁有例子我200分送上,我说话算话!!!
      

  9.   

    试一试devexpress 的masterview控件,看可不可以帮上你的忙,我明天到公司试一试
      

  10.   

    我认为在输入数据时,一般不要用dbgrid,用edit,或dbedit.我认为,最好用edit。再用sql进行insert.这样可以对每个字段进行有效的控制