如果你不修改,只是让他获取一下焦点可以吗?
什么版本的D啊,难道Bug';?

解决方案 »

  1.   

    D7的版本,获取焦点也不行啊,我想这里应该是有赋值的,为什么非要在这个dbedit框里人工输入一下呢?这是个什么道理?
      

  2.   

    Delphi 7??!!
    是有这个问题,其他版本没试过。
    在给这个DBEdit赋值时,不要用“DBEdit1.text := Form2.Edit1.text”这样的方式,要用“ADOQuery1.FieldValues["Field1"] :=Form2.Edit1.text”这种方式(Field1是DBEdit1对应的字段名)。
    之前测试的结论是:“DBEdit1.text := Form2.Edit1.text”这样的方式不一定会将Form2.Edit1.text传给数据库中的字段,有可能只是传给了DBEdit1.text显示。
    所以后来就只用第二种方式,不用第一种方式了。
      

  3.   

    同意楼上,赋值的关键是传给ADO控件。
    这个应该是DBEdit的BUG,动态赋值没有激活DBEdit相关事件,手动赋值才行激活。
      

  4.   

    楼主也可以试试这样赋值:
      if DBEdit1.Field <> nil then
        DBEdit1.Field.Value := 'ss';
      

  5.   

    我为什么这样处理是因为用了adotable来进行编辑,保持,没有用adoquery来处理。所以大家想想还有没有其他的办法呢?
      

  6.   

    我也碰到过这个问题,后来是这样做的,post后,值可以保存到数据库了
    edt_jsgs.DataBinding.Field.Value :='jsgs'
      

  7.   

    我的逻辑是这样的,首先切换到该页面的时候,自动传值给dbedit,然后点击修改按钮,执行adotable.Edit;,然后在页面进行编辑,点击保存按钮,执行adotable.post
      

  8.   

    另外多问依据,如果该表中没有这条记录,如果只不执行appand,然后执行了edit,这样是否也可以保存数据呢
      

  9.   

    你的databinding是什么属性?C#?
      

  10.   

    想到一个办法了,就是在编辑的时候,判断如果数据库里没有存在的对应数据,就执行insert,如果有,则执行edit
      

  11.   

    你的databinding是什么属性?C#?
    额,这个是cxDBTextEditB的写法,dbedit是   DBEdit1.Field.Value := 'abc';