注册 登录
编程论坛 Delphi论坛

错误提示分析原因给出解决方案

墟烟 发布于 2013-04-23 16:13, 842 次点击
提示信息:EDatabaseError with message Query:parameter UN not found,该怎么解决?
附源代码:
procedure TFrmLogin.BtnLoginClick(Sender: TObject);
begin
  with DM.query do
  begin
    close;
    sql.clear;
    sql.Add('select * from TB_Users where UserName=:UN and PassWord=:PW');
    Parameters.ParamByName('UN').Value:=CBUserName.Text;
    Parameters.ParamByName('PW').Value:=EDPassWord.Text;
    Open;
    if recordCount<1 then
    begin
        ShowMessage('对不起!用户名或密码错误!');
        Exit;
    end;
    pass:=true;
    self.Close;
  end;
end;

[ 本帖最后由 墟烟 于 2013-5-10 20:27 编辑 ]
4 回复
#2
mayanzs2013-04-24 21:21
procedure TFrmLogin.BtnLoginClick(Sender: TObject);
begin
  with DM.query do
  begin
    close;
    sql.clear;
    sql.Add('select * from TB_Users where UserName=:UN and PassWord=:PW');
    ParamByName('UN').AsString:=CBUserName.Text;
    ParamByName('PW').AsString:=EDPassWord.Text;
    Open;
    if recordCount<1 then
    begin
        ShowMessage('对不起!用户名或密码错误!');
        Exit;
    end;
    pass:=true;
    self.Close;
  end;
end;


或:

procedure TFrmLogin.BtnLoginClick(Sender: TObject);
begin
  with DM.query do
  begin
    close;
    sql.clear;
    sql.Add('select * from TB_Users where UserName='''+CBUserName.Text+''' and PassWord='''+EDPassWord.Text+''');
    Open;
    if recordCount<1 then
    begin
        ShowMessage('对不起!用户名或密码错误!');
        Exit;
    end;
    pass:=true;
    self.Close;
  end;
end;
#3
volte2013-05-03 16:04
冒号的问题。
#4
volte2013-05-03 16:04
注意中英文输入法!
#5
墟烟2013-05-10 20:20
回复 4楼 volte
多谢!
1