我做登录界面,登录时提示为“列名 ‘username’无效”,请问该如何解决
type
  Tlogin_form = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    username_edit: TEdit;
    password_edit: TEdit;
    CmdOK: TButton;
    CmdClose: TButton;
    Label3: TLabel;
    TADOQuery: TADOQuery;
    ADOConnection1: TADOConnection;
    procedure CmdOKClick(Sender: TObject);
    procedure CmdCloseClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  login_form: Tlogin_form;
  name,password,sqlstr:string;
implementationuses main;{$R *.dfm}procedure Tlogin_form.CmdOKClick(Sender: TObject);
begin    if (length(trim(username_edit.Text)) > 0) or (length(trim(password_edit.Text)) > 0) then
    begin
        name:=trim(username_edit.Text);
        password:=trim(password_edit.Text);
        with TADOQuery.Create(nil) do
        try
        Connection:=Mainform.ADOConnection1;
        Close;
        SQL.Clear;
        SQL.Add('select * from student where(username like'''+name+''')and(passwor='''+password+''')');
        Open;
        //如果用户名和密码都正确,则启动相关项目菜单
        if RecordCount > 0 then
        begin
            Mainform.N1.Visible:=true;
            Mainform.N2.Visible:=true;
            Mainform.N3.Visible:=true;
            Mainform.N4.Visible:=true;
            Mainform.N11.Enabled:=false;
            login_form.free;
        end
        else
        begin
            showmessage('请确认登录的用户名和密码是否正确!');
            username_edit.SetFocus;
            username_edit.SelectAll;
        end;
        finally
        Free;
        end;
    end
    else
    begin
        showmessage('请输入登录用户名和密码!');
        username_edit.SelectAll;
    end;
end;

解决方案 »

  1.   

    首先确认 username  在student 表中有没有这个字段 
      

  2.   

    SQL.Add('select * from student where (username like'''+name+''') and (passwor='''+password+''')');
      

  3.   

    你可以把你的SQL语句放到查询分析器里先执行下确认没问题在说,其次看看字段名称有没有拼写错误
      

  4.   


    有,我在数据库中定义了 username  text
                        password   int
      

  5.   

    SQL.Add('select * from student where([username] like'''+name+''')and(passwor='''+password+''')');
      

  6.   

    password 还是 passwor ?
      

  7.   

    就是下面代码出错了:
    SQL.Add('select * from student where(username like'''+name+''')and(passwor='''+password+''')');
    应修改为:
    SQL.Add('select * from student where(username like'+''''+name+''''+') and(passwor='+''''+password+''''+')');
      

  8.   

    where(username   Where后面要用空格格开如where  ( username,你调试的时候可以把他生成的Sql语句取出来放到查询分析器中运行试下就知道问题出在那了。
      

  9.   

    你用showmessage();
    试试那个语句是否对》》》》》》》》》》》》》》
      

  10.   

    用sql server跟踪器跟踪你的语句,在查询分析器执行就知道错在哪里了。
      

  11.   

    SQL.Add('select * from student where username = '+#39+name+#39+' and passwor = '+#39+password+#39 );like 后面不加%号,还不如只接用等于号
      

  12.   

    password:=trim(password_edit.Text);   //这里为string类型 
      
    而你在数据库中定义了 username text
      password int