运行时一直提示出错,说关键字“User”附近有语法错误。设置断点,一步步运行的时候,到了ADOQuery_Login.Open;就出错了,为什么呢?请高手帮忙!!谢谢!
unit Login;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    eUsername: TEdit;
    ePassword: TEdit;
    bLogin: TButton;
    bRegister: TButton;
    bReset: TButton;
    ADOConnection1: TADOConnection;
    ADOQuery_Login: TADOQuery;
    procedure bRegisterClick(Sender: TObject);
    procedure bResetClick(Sender: TObject);
    procedure bLoginClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Register,Main;    {$R *.dfm}procedure TForm1.bRegisterClick(Sender: TObject);
begin
    Hide;
    Form2.Show;
end;procedure TForm1.bResetClick(Sender: TObject);
begin
    eUsername.Text:='';
    ePassword.Text:='';
end;procedure TForm1.bLoginClick(Sender: TObject);
    var  sUsername: string;
         sPwd: string;
         sWord: string;
begin
    sUsername:=eUsername.Text;
    sPwd:=ePassword.Text;
    sWord:='select Username,Password from User where Username='+#39+sUsername+#39' and Password='+#39+sPwd+#39'';
    ADOQuery_Login.Close;                   
    ADOQuery_Login.SQL.Clear;               
    ADOQuery_Login.SQL.Add(sWord);          
    ADOQuery_Login.Open;                    
    //ADOQuery_Login.Active:=true;          
    if ADOQuery_Login.Recordset.RecordCount = 0 then
    begin
        ADOQuery_Login.Close;                   
        ShowMessage('用户名或密码错误!');
    end
    else begin
        ADOQuery_Login.Close;                   
        ShowMessage('用户名或密码正确!');
        //Hide;
        //Form3.Show;
    end
end;end.

解决方案 »

  1.   

    sWord:='select Username,Password from User where Username='+''''+sUsername+''''+' and Password='+''''+sPwd+'''';
      

  2.   

    sWord:='select Username,Password from User where Username='+#39+
             sUsername+#39 +'and Password='+#39+sPwd+#39;
      

  3.   

    User 是数据库中的关键字,你不能用这个表名,要把表名改一下。
      

  4.   

    对!User是关键字,数据库、表、字段名最好不要使用关键字
    你可以把user加上方括号(...from [user]...)再试试看
      

  5.   

    呵呵,谢谢大家了,我已经解决了,在User两边加双引号就可以了,谢谢你们啦~~
    另外[User],这样也是可以的,谢谢啦!!!
      

  6.   

    1.User是關鍵字不能用它作為表名;
    2.如果真的要用它,在User左右加單引號.