您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> ADO设置登录验证不起作用?

ADO设置登录验证不起作用?

来源:网络整理     时间:2016/8/9 13:58:05     关键词:

关于网友提出的“ 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

相关图片

相关文章