就是想在程序中,通过类似的
DBEDit1.Text := s;
来赋值。但是,程序执行后,确实出现预期的结果,但是转换焦点后,结果消失,即使不转换焦点,也不能被保存到数据库。可能不能这么直接赋值,请教正确的方法。Edit控件没有这个问题,但是不打算用。毕竟不太直接。

解决方案 »

  1.   

    你就用dataset.FieldByName(DBEDit1.Datafield).AsString:=s;
      

  2.   

    你需要设置 数据集的状态,
    比如 
    DataSet.Edit; // 进入编辑状态
    DataSet.Post; // 提交数据
      

  3.   

    DBEDit1.Text := s;
    不好
    就是
    qingenerp(真爱不息) ( 的
      

  4.   

    用这个dataset.FieldByName(DBEDit1.Datafield).AsString:=s;直接赋到数据库中,就不会出现那样的结果了,我以前也遇到过
      

  5.   

    晕难道没有直接的方法么?毕竟写到数据库不太干净呢而且,实际上我碰到的情况还有另外一种呢就是类似 text := Text + s;的情况
      

  6.   

    没有insert,edit状态是提交不了的
      

  7.   

    DBEDit1.Text := s;转移焦点会提交到数据集,如果你的提交按钮不是窗体控件没有焦点的话,数据集中的值不会改变。建议使用FieldByName(DBEDit1.Datafield).AsString:=s
      

  8.   

    那是因为你没有把数据集的状态设置为Edit或者Insert
      

  9.   

    就是通过Insert过来的数据另外查找源代码,暂时没有找到问题。但是怀疑在TDBEdit.KeyPress中有答案
      

  10.   

    要让dbedit连的adoquery或adotable在append或edit状态,才能对dbedit进行赋值,否则就不行啦!~~~
    如果你用的dbedit没有连adoquery或adotable 就不能输入数据!~~