if   not   form2.adoquery1.active   then   form2.adoquery1.open;  form2.ADOQuery1.Edit;
  form2.adoquery1.FieldByName('人员代码').AsString:=edit1.Text;
  form2.adoquery1.FieldByName('姓名').AsString:=edit2.Text;
  form2.adoquery1.FieldByName('性别').AsString:=combobox1.Text;
  form2.adoquery1.FieldByName('出生日期').AsString:=datetostr    (datetimepicker1.Date);修改记录并保存到数据库
为什么我修改了“人员代码”的值,但是数据库没有更新,还是原来的数值。

解决方案 »

  1.   

    if   not   form2.adoquery1.active   then   form2.adoquery1.open这句话有问题
    应该这样写:
    if   not   form2.adoquery1.active   then   form2.adoquery1.Active := True;
    然后在执行你下面的
      form2.ADOQuery1.Edit; 
      form2.adoquery1.FieldByName('人员代码').AsString:=edit1.Text; 
      form2.adoquery1.FieldByName('姓名').AsString:=edit2.Text; 
      form2.adoquery1.FieldByName('性别').AsString:=combobox1.Text; 
      form2.adoquery1.FieldByName('出生日期').AsString:=datetostr    (datetimepicker1.Date); 
    最后
    form2.adoquery1.post;
    这样看看可以吗?