上面的语句好像没错,下面的是不是应该这样写:
begin
      DataModule1.CDSworker.Close;
      DataModule1.CDSworker.CommandText:='update worker set 密码=8888  where 用户名=8888';
      DataModule1.CDSworker.Execute;

解决方案 »

  1.   

    是对ClientDataSet的操作有误,建议你再看一下Close Active Execute 对CDS的影响,
      

  2.   

    guo_hai13() 
    Close Active Execute 是什么?在在哪里?
      

  3.   

    修改后的代码:
    内容如下:
    begin
          DataModule1.CDSworker.Close;
          DataModule1.CDSworker.CommandText:='update worker set 密码='+''''+NPas.Text+''''+'where 用户名='+''''+Unam.Text+'''';
          DataModule1.CDSworker.Execute;
    end;
    后来,改用简单的update语句,比如:
    begin
          DataModule1.CDSworker.Close;
          DataModule1.CDSworker.CommandText:='update worker set 密码=8888  where 用户名=8888';//要求密码和用户名都是int型
          DataModule1.CDSworker.Execute;