我在做通讯录时有个浏览的窗体,每个字段用DBEDIT显示的,我把每个DBEDIT的readonly属性设置成True,但在浏览窗体上我有个“修改”的按钮,当我点击“修改”时,我的语句是“DBEdit1.ReadOnly:=False; DBEdit2.ReadOnly:=False; ……”;
请问一:你说这样是不是很苯的方法,有更好的吗?
请问二:我在这个窗体里该有个修改好“确认”的按钮,代码这样写的:
“DataModule7.ADODataSet1.UpdateRecord;”但我执行后发现数据库没有更新
着又是为什么??

解决方案 »

  1.   

    1.改数据集的ReadOnly属性
    2.DataModule7.ADODataSet1.UpdateBatch
      

  2.   

    你如果DBEDIT的个数比较多的话,就用这个:
     for i:=0 to form1.componentcount-1 do 
     begin
      if form1.components[i] is TDBedit then 
        (components[i] as tdbedit).readonly:=false;
     end;
      

  3.   

    你的方法我没有试过,不过你可以试试在“确认”的事件里写datamodule7.adotable.post;试一下!
      

  4.   

    我赞同mikko11(指南针) !
    给分吧 50分
      

  5.   

    ADODataSet1.Close;
      ADODataSet1.Open;试试看?
      

  6.   

    wwle(灰色幽幽) 我不明白mikko11(指南针)的方法,他是如何该数据的属性的呢?
    第二个可不可以我也不知道
      

  7.   

    可以用datamodule7.adotable.post试试
      

  8.   

    for i:=0 to form1.componentcount-1 do 
     begin
      if form1.components[i] is TDBedit then 
        (components[i] as tdbedit).readonly:=false;
     end;
      

  9.   

    1.将DbEdit放在一个Panel上面,这样设置一下Panel.Enable就可以了。
    2.看你用什么数据库,有些时候Access数据库是这样的。
      

  10.   

    “DataModule7.ADODataSet1.UpdateRecord;”和
    “DataModule7.ADODataSet1.UpdateBatch;”有什么区别啊?
    为什么用前者不行,用后者行
      

  11.   

    DataModule7.ADODataSet1.UpdateRecord;后加上:DataModule7.ADODataSet1.ApplyUpdate;