关于网友提出的“ ADO设置登录验证不起作用?”问题疑问,本网通过在网上对“ ADO设置登录验证不起作用?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: ADO设置登录验证不起作用?
描述: unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if radiobutton1.Checked then
begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select * from MLogin');
adoquery1.SQL.add('where 管理员='''+edit1.text+''' and 密码='''+edit2.text+'''');
adoquery1.Parameters.ParamByName('管理员').Value:=trim(Edit1.Text);
adoquery1.Parameters.ParamByName('密码').Value:=trim(Edit2.Text);
adoquery1.open;
if adoquery1.RecordCount>0 then
begin
form1.hide;
end
else
showmessage('用户名不存在或者权限错误,请查证后输入');
edit2.Clear
end
else if radiobutton2.Checked then
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select * from SLogin');
adoquery1.SQL.add('where 用户='''+edit1.text+''' and 密码='''+edit2.text+'''');
adoquery1.Parameters.ParamByName('用户').Value:=trim(Edit1.Text);
adoquery1.Parameters.ParamByName('密码').Value:=trim(Edit2.Text);
adoquery1.open;
if adoquery1.RecordCount>0 then
begin
form1.hide;
form2.show;
end
else
showmessage('用户名不存在或者权限错误,请查证后输入');
edit2.Clear;
end
end;
end.
解决方案1: adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select * from MLogin where 管理员=:name and 密码=:password');
adoquery1.Parameters.ParamByName('name').Value:=trim(Edit1.Text);
adoquery1.Parameters.ParamByName('password').Value:=trim(Edit2.Text);
adoquery1.open;
if adoquery1.eof then
begin
//没有此用户
end else
begin
end;
解决方案2: sql语句写的乱七八糟,ParamByName是变量,你sql中根本没有变量,而且你好像根本不知道变量如何使用,sql中的变量前要加冒号比如 :name
以上介绍了“ ADO设置登录验证不起作用?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3158017.html