在设计mdi登录窗体时:点“确定”按钮提示错误:ADOQuery1: Parameter 'name' not found.
大家帮帮我。
下面是FormLogin的代码:
unit Unit7;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
TFormLogin = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
EditName: TEdit;
EditPassword: TEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
FormLogin: TFormLogin;implementationuses Main;
{$R *.dfm}
procedure TFormLogin.Button1Click(Sender: TObject);
Var
AQuery:TADOQuery;
sResult,sPw: string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from pubyhmcb where useno=:name');
adoquery1.Parameters.ParamByName('name').Value:=editname.Text;
adoquery1.Open;
if adoquery1.RecordCount<>0 then
begin
sPw:=trim(adoquery1.FieldByName('password').AsString);
AQuery := TADOQuery.Create(nil);
AQuery.Connection :=adoquery1.connection;
try
AQuery.Close;
AQuery.SQL.Text := 'exec pr_cims_Encry'''+trim(editname.Text)+''','''+sPw+''',1';
AQuery.Open;
sResult:= AQuery.Fieldbyname('pw').AsString;
finally
AQuery.Close;
AQuery.Free;
end;
if sResult=trim(editpassword.Text) then
begin showmessage('成功登录');
formlogin.Hide ;
formmain.Show;
end else
showmessage('登录失败');
exit;
end
else begin
messagedlg('用户不存在!',mtinformation,[mbOK],0) ;
exit;
end;
end;procedure TFormLogin.Button2Click(Sender: TObject);
begin
close; //退出
end;procedure TFormLogin.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (activecontrol is Tedit) then
begin
key:=#0;
perform(wm_nextdlgctl,0,0);
end;
end;
end.
大家帮帮我。
下面是FormLogin的代码:
unit Unit7;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
TFormLogin = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
EditName: TEdit;
EditPassword: TEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
FormLogin: TFormLogin;implementationuses Main;
{$R *.dfm}
procedure TFormLogin.Button1Click(Sender: TObject);
Var
AQuery:TADOQuery;
sResult,sPw: string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from pubyhmcb where useno=:name');
adoquery1.Parameters.ParamByName('name').Value:=editname.Text;
adoquery1.Open;
if adoquery1.RecordCount<>0 then
begin
sPw:=trim(adoquery1.FieldByName('password').AsString);
AQuery := TADOQuery.Create(nil);
AQuery.Connection :=adoquery1.connection;
try
AQuery.Close;
AQuery.SQL.Text := 'exec pr_cims_Encry'''+trim(editname.Text)+''','''+sPw+''',1';
AQuery.Open;
sResult:= AQuery.Fieldbyname('pw').AsString;
finally
AQuery.Close;
AQuery.Free;
end;
if sResult=trim(editpassword.Text) then
begin showmessage('成功登录');
formlogin.Hide ;
formmain.Show;
end else
showmessage('登录失败');
exit;
end
else begin
messagedlg('用户不存在!',mtinformation,[mbOK],0) ;
exit;
end;
end;procedure TFormLogin.Button2Click(Sender: TObject);
begin
close; //退出
end;procedure TFormLogin.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (activecontrol is Tedit) then
begin
key:=#0;
perform(wm_nextdlgctl,0,0);
end;
end;
end.
解决方案 »
- 这个东西怎么用啊
- 这个问题该怎样解决,请帮忙,谢谢!
- 郁闷了。最大化一个无标题窗口时。截取WM_GETMINMAXINFO消息,设置窗口的高度。为什么还是会盖住任务栏。还有去掉标题栏后如何调整窗口大
- BcdAdd在我机器上出现意外,大家可以试试看是不是这个结果!
- 【不死鸟的散分贴之七……】高兴!!!和一个多次视频不成功的朋友聊天,今天视频成功....
- 终于回来了,csdn,我爱你,想你
- 我工资低,还有一个了人在那里炫耀他的工资+奖金多少,郁闷!
- 请问一个三角多少分,一个星多少分啊?
- !!!绝对陷阱,千万别上当!!! !
- 怎样在一张报表(Quickrep)中把一个字段的不同值分为几列同时打印呢?急!急!火急!火急!
- 菜单?
- 盗版的Delphi XE会不会自动发数据给易博龙公司
adoquery1.SQL.Add('select * from pubyhmcb where useno= '''+editname.Text+'''');
adoquery1.Open;这样不就行了??
Var
AQuery:TADOQuery;
sResult,sPw: string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from pubyhmcb where useno=:name');//看看是不是这个?