AConnection := CreateOleObject('ADODB.Connection');
  AConnection.Open('dsn=manage');
  ARecordSet := CreateOleObject('ADODB.RecordSet');
  ARecordSet.open( 'select UserName from manage where   password=''userpassword.text''',AConnection,,,);
if not(ARecordSet.Fieldbyname('UserName').AsString=name.Text)then//这里怎么会出现错误呢?
    begin
      ShowMessage('用户名或密码不正确,请确认后重新输入!');
      name.Text:='';
      userpassword.Text:='';
      name.SetFocus;
    end
    else
    begin
      ShowMessage('登录成功!欢迎使用本系统!');
      form1.Show;
      login.Hide;
    end;谁做过这样的东西啊?
帮我找一下错误啊?谢谢了!

解决方案 »

  1.   

    (ARecordSet.Fieldbyname('UserName').AsString=name.Text)的结果不是Boolean型的,所以前面是不能使用not的
      

  2.   

    看看这样:if not(ARecordSet.Fieldbyname('UserName').Asinteger=strtoint(name.Text)) then
      

  3.   

    ARecordSet.open( 'select UserName from manage where   password='+  
    QuotedStr(userpassword.text),AConnection,,,);
      

  4.   

    ARecordSet.Fieldbyname('UserName').value=name.Text  用这个试试
      

  5.   

    if ARecordSet.Fieldbyname('UserName').AsString<>name.Text then
    这样不行么?
      

  6.   

    也可以这样比较ansiCompareText(temdataset.fieldbyname(‘UserName’).AsString,name.Text ) = 0这个返回值是布尔类型的,前面可以用not