我有delphi+sql2000写一个登录窗体,就是进入要输入用户名和密码的
控件是adoconncetiontion和ADODataSet,输入框是combobox1(用户名) 和edit1.text(密码)
bottom1(确定),bottom2(取消)
数据表是userdb,字段是username,password 是字符型。
如何编写呢?。

解决方案 »

  1.   

    直接从库中查询,用户名密码,如果库中有就表示正确就让他进入系统,错误的话,你可以再给她次机会输入,不行用Application。terminate退出程序
      

  2.   

    var
    mima:string;
    begin
    if combobox1.text<>'' then
     begindm1.querymima.first;
    while not dm1.querymima.eof do
       begin
       if dm1.querymima.fieldbyname('user').asstring=combobox1.Text then
             mima:=trim(dm1.querymima.fieldbyname('mima').AsString);
          dm1.querymima.Next;
       end;
            //showmessage(mima);
            if mima=trim(edit1.Text) then
             begin
            进入主窗体
             form1.caption:='欢迎登陆本系统  用户名'+combobox1.text;
             end
            else
               begin
                 application.MessageBox(pchar('输入的用户名或密码有误,请重新输入'),'提示',48);
                 combobox1.Text:='';
                  edit1.Text:='';
                  combobox1.SetFocus;
               end;
       end;
      

  3.   

    with ADODataSet1 do 
      if (FieldValues['UserName']=ComboBox1.Text) and (FieldValues['Password']=Trim(Edit1.Text)) then
        Self.Close
      else
      begin
        MessageBeep(MB_ICONASTERISK);
        Application.MessageBox(PChar('登陆错误.'),'错误',MB_ICONERROR+MB_OK);
      end;  上面代码放到Button1的OnClick事件中然后在登录窗体(假设是LoginForm)的OnClose事件中写
    ....
    Action:=caFree;
    LoginForm:=NIL;  //注意这里不能使用Self
    ....最后还要保证ADOConnection1的ConnectionString指向数据库以及ADODataSet1的相关属性设置正确然后在Button2的OnClick事件中写如下代码:
    ....
    Self.Close;  //如果LoginForm是模态窗体则使用IsAbortResult来判断
    ....
      

  4.   

    Sorry,对用户名和密码的判断应该用一个循环:with ADODataSet1 do 
    begin
      First;
      while not Eof do
      begin 
        if (FieldValues['UserName']=ComboBox1.Text) and (FieldValues['Password']=Trim (Edit1.Text)) then
          Self.Close
        else
        begin
          MessageBeep(MB_ICONASTERISK);
          Application.MessageBox(PChar('登陆错误.'),'错误',MB_ICONERROR+MB_OK);
        end;
        Next;
      end;
      

  5.   

    end;  //呵呵,上面的代码最后少了个End,呵呵!
      

  6.   

    可以用adoquery实现会比较容易一些
      

  7.   

    是啊,一般很少用ADODataSet这个控件的,我多用ADOTable和ADOQuery!
      

  8.   

    上面的代碼還是不能解決問題主要在於連接不了數據庫combobox的下拉目錄沒有連上是空的聽老菜鳥說是combobox的items屬性 才可以的, 不知道還有什麼方法可以解決啊