adoquery.Close;
         adoquery.SQL.Clear;
         s:='update 用户 set password=%0 where username=%1';
         s:=Format(s,[edit5.text,edit3.text]) ;
         adoquery.ExecSQL(s);
         adoquery.open;
以上代码为什么会提示, too many actual parameters??
小弟先谢谢了

解决方案 »

  1.   

    s:='update 用户 set password='''+edit5.text+''' where username='''+edit3.text+'''';
    这样就行了 
    是你参数付值不对
      

  2.   

    你的写法很有问题,用参数的话,应该是
    try
      with adoquery do
      begin
        Close;
        SQL.Clear;
        sql.append('update 用户 set password=:pwd where username=:username');
        parameters.parameterbyname('pwd').value := trim(edit5.text); 
        parameters.parameterbyname('username').value := trim(edit.3.text);
        ExecSQL;  
      end;
    except
      //出错处理
    end;
      

  3.   

    open和 ExecSQL是有分别的,一般的来说open用在查询上面,有数据返回;而execsql则用在update delete等方面,是没有数据返回的。