Query1.Close;
    Query1.SQL.Add('Select 雇员号,口令 from guyuan');
    Query1.SQL.Add('where 雇员号='+Edit1.Text);-----要用变量代替
    Query1.SQL.Add('and 口令='''+Edit2.Text+'''');------同上
    Query1.Open;    

解决方案 »

  1.   

    我改了,没用,开始时是我把雇员号当成String了,是出错,可是我改了后,错误中没有guyuanNum(前 雇员号),只有Passwords出错了。
    阿僚:你说的是这样改吗?:
        Query1.Close;
        Query1.SQL.Add('Select 雇员号,口令 from guyuan');
        Query1.SQL.Add('where 雇员号='+'guyuans');-----guyuans是Integer,其它我不说了。
        Query1.SQL.Add('and 口令='+'password');------同上Password:=Edit2.text;
        Query1.Open;
    这样也不行。
      

  2.   

    错了错了,SQL 语句写错了!!
        Query1.Close;
        Query1.SQL.Add('Select 雇员号,口令 from guyuan');
        //肯定是中间的逗号不是英文的,你把逗号换成英文的就可以了
        Query1.SQL.Add('where 雇员号='+edit1.text);
        Query1.SQL.Add('and 口令='''+password+'''');
        Query1.Open;
      

  3.   

    Query1.SQL.Add('Select 雇员号,口令 from guyuan');
    //这句中的逗号注意用英文的逗号!!!!!!!
      

  4.   

    用Table来实现,将雇员号和口令设为主键
      begin
        Table1.Open;
        Table1.SetKey;
        Table1.FieldByName('雇员号').AsString:=Edit1.Text;
        Table1.FieldByName('口令').AsString:=Edit2.Text;
        if not Table1.GotoKey then
        begin
          ShowMessage('口令不对,请检查!');
          Edit2.SetFocus;
          Edit2.SelectAll;
        end
        else
        begin
          Table1.Edit;
          Table1.FieldByName('口令').AsString:=Edit3.Text;
          Table1.Post;
          Table1.Close;
          ShowMessage('口令修改成功!');
        end;
      end;
      

  5.   

    改中文字段为英文。
    如下:procedure TForm2.BitBtn2Click(Sender: TObject);
    begin
      if (Edit1.Text='') or (Edit3.Text<>Edit4.Text) then
      begin
        if Edit1.Text='' then
        begin
          showMessage('Error Please Select a yonghu');
          Edit1.SetFocus;
        end
        else
        begin
          showMessage('Error! your kouling is Wrong');
          Edit3.Text:='';
          Edit4.Text:='';
        end;
      end
      else
      begin
        Query1.Close;
        Query1.SQL.Add('Select ManCode,Password from guyuan');
        Query1.SQL.Add('where ManCode='+Edit1.Text);///not string
        Query1.SQL.Add('and Password='''+Edit2.Text+'''');///string
        Query1.Open;    if (Query1.RecordCount<>1) or (Edit2.Text<>Query1.FieldValues['口令']) then
        begin
          ShowMessage('口令不对,请检查!');
          Edit2.SelectAll;
        end
        else
        begin
          Query1.Edit;
          Query1.FieldByName('Password').asstring:=Edit3.Text;
          Query1.Post;
          ShowMessage('口令修改成功!');
          BitBtn1.Click;
        end;
      end;
    end;
      

  6.   

    哦,对了。
    我感肯定你的  雇员号,口令 中间的逗号是中文状态下的。
    改了就好了。你看我的Mancode,Password 中间的逗号。
    哈哈。
      

  7.   

    看你数据库中定义的雇员号,口令是什么数据类型,如果是字符型在Sql中应有分号,如果是数据型则没有分号,总体思路是这样的,你可以自己去试一下
      

  8.   

        Query1.Close;
        Query1.Sql.clear;
        Query1.SQL.Add('Select ManCode,Password from guyuan');
        Query1.SQL.Add('where ManCode='+Edit1.Text);///not string
        Query1.SQL.Add('and Password='''+Edit2.Text+'''');///string
      uery1.Open;
      

  9.   

    你的 "雇员号,口令" 中间的逗号是中文状态下全角的。
    还有:
    if (Query1.RecordCount<>1) or (Edit2.Text<>Query1.FieldValues['口令']) then
    中,第二条件是多余的。最好改为
    if Query1.RecordCount<>1 then
      

  10.   

    将if (Query1.RecordCount<>1) or (Edit2.Text<>Query1.FieldValues['口令'])改为
    if Query1.eof=Query1.bof then
    试试
      

  11.   

    还有
        Query1.Close;
        Query1.SQL.Add('Select 雇员号,口令 from guyuan');
        Query1.SQL.Add('where 雇员号='+Edit1.Text);
        Query1.SQL.Add('and 口令='''+Edit2.Text+'''');
        Query1.Open;
    跟踪一下类型是否匹配,逗号是否正确