⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 certify.cpp

📁 学生选课管理信息系统原码
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Certify.h"
#include "DataUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TCertifyDlg *CertifyDlg;
//---------------------------------------------------------------------------
__fastcall TCertifyDlg::TCertifyDlg(TComponent* Owner)
        : TForm(Owner)
{
  m_nTimes = 0 ;
  m_strStuName = "" ;
}
//---------------------------------------------------------------------------
void __fastcall TCertifyDlg::OKBtnClick(TObject *Sender)
{
  m_nTimes ++;
  //首先根据用户选择的是教务还是学生,确定查询哪个数据表
  if(RadioGroup1->ItemIndex == 0)
  {
    DataMod->EduManagQuery->SQL->Clear();
    DataMod->EduManagQuery->Close();
    //查询EduManager.db数据表

    //首先查询是否有该用户名
    AnsiString  queryString = "Select * from EduManager";
    queryString += " where EMName=\"";
    queryString += UserEdt->Text ;
    queryString += "\"" ;

    try
    {
       DataMod->EduManagQuery->SQL->Add(queryString);
       DataMod->EduManagQuery->ExecSQL() ;
       DataMod->EduManagQuery->Active = true ;
    }
    catch(EDBEngineError &E)
    {
      MessageBox(this,"不能查询数据表","错误",MB_OK) ;
      ModalResult = mrAbort ;
      return ;
    }
    if (DataMod->EduManagQuery->RecordCount == 0)
    {
      //如果查询表中的记录数目为0,表示没有该用户名
      if(m_nTimes == 3)
      {
        //如果已经出现三次错误,则显示该用户不合法,强行退出
        MessageBox(NULL,"您不是合法用户!","登录数据库错误",MB_OK ) ;
        ModalResult = mrAbort ;
        //关闭对话框
        Close() ;
      }
      else
      {
        //用户重新输入用户名
        MessageBox(NULL,"用户名不存在,请重新输入","登录数据库错误",MB_OK) ;
        UserEdt->Text = "";
        //将光标移动到用户输入编辑框中
        UserEdt->SetFocus() ;
        PasswordEdt->Text = "" ;
        ModalResult = mrNone ;
      }
    }
    else
    {
      //用户名存在,则判断口令是否正确
      queryString += " and EPassword =\"" ;
      queryString += PasswordEdt->Text ;
      queryString += "\"" ;

      try
      {
        DataMod->EduManagQuery->SQL->Clear();
        DataMod->EduManagQuery->SQL->Add(queryString);
        DataMod->EduManagQuery->ExecSQL() ;
        DataMod->EduManagQuery->Active = true ;
      }
      catch(EDBEngineError &E)
      {
        MessageBox(this,"不能查询数据表","错误",MB_OK ) ;
        ModalResult = mrAbort ;
        return ;
      }
      if (DataMod->EduManagQuery->RecordCount == 0)
      {
        //如果查询表中的记录数目为0,表示口令不正确
        if(m_nTimes == 3)
        {
          //如果已经出现三次错误,则显示该用户不合法,强行退出
          MessageBox(NULL,"您不是合法用户!","登录数据库错误",MB_OK ) ;
          ModalResult = mrAbort ;
          //关闭对话框
          Close() ;
        }
        else
        {
          MessageBox(NULL,"口令不正确,请重新输入","登录数据库错误",MB_OK ) ;
          //让用户重新输入口令
          PasswordEdt->Text = "" ;
          ModalResult = mrNone ;
        }
        DataMod->EduManagQuery->Close() ;
      }
      else
      {
        //找到记录,关闭数据表,并返回到主窗口中
        DataMod->EduManagQuery->Close() ;
        ModalResult = mrOk ;
      }
    }
  }
  else
  {
    //学生登录,查询Student.db数据表 (下面程序结构说明与教务登录类似,不再做说明了)
    DataMod->StudentQuery->SQL->Clear();
    DataMod->StudentQuery->Close();

    AnsiString  queryString = "Select * from Student";
    queryString += " where StudentNo =\"";
    queryString += UserEdt->Text ;
    queryString += "\"" ;

    try
    {
      DataMod->StudentQuery->SQL->Add(queryString);
      DataMod->StudentQuery->ExecSQL() ;
      DataMod->StudentQuery->Active = true ;
    }
    catch(EDBEngineError &E)
    {
      MessageBox(this,"不能查询数据表","错误",MB_OK) ;
      ModalResult = mrAbort ;
      return ;
    }
    if (DataMod->StudentQuery->RecordCount == 0)
    {
      if(m_nTimes == 3)
      {
        MessageBox(NULL,"您不是合法用户!","登录数据库错误",MB_OK ) ;
        ModalResult = mrAbort ;
        Close() ;
      }
      else
      {
        MessageBox(NULL,"用户名不存在,请重新输入","登录数据库错误",MB_OK ) ;
        UserEdt->Text = "";
        UserEdt->SetFocus() ;
        PasswordEdt->Text = "" ;
        ModalResult = mrNone ;
      }
    }
    else
    {
      queryString += " and SPassword =\"" ;
      queryString += PasswordEdt->Text;
      queryString += "\"" ;

      try
      {
        DataMod->StudentQuery->SQL->Clear();
        DataMod->StudentQuery->SQL->Add(queryString);
        DataMod->StudentQuery->ExecSQL();
        DataMod->StudentQuery->Active =true;
      }
      catch(EDBEngineError &E)
      {
        MessageBox(this,"不能查询数据表","错误",MB_OK ) ;
        ModalResult = mrAbort ;
        return ;
      }
      if (DataMod->StudentQuery->RecordCount == 0)
      {
        if(m_nTimes == 3)
        {
          MessageBox(NULL,"您不是合法用户!","登录数据库错误",MB_OK) ;
          ModalResult = mrAbort ;
          Close() ;
        }
        else
        {
          MessageBox(NULL,"口令不正确,请重新输入","登录数据库错误",MB_OK ) ;
          PasswordEdt->Text = "" ;
          ModalResult = mrNone ;
        }
        DataMod->StudentQuery->Close() ;
      }
      else
      {
        m_strStuName = DataMod->StudentQuery->FieldValues["StudentName"] ;
        DataMod->StudentQuery->Close() ;
        ModalResult = mrOk ;
      }
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TCertifyDlg::PasswordEdtKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  if(Key == VK_RETURN)
  {                                      
    OKBtnClick(Sender) ;
  }        
}
//---------------------------------------------------------------------------

void __fastcall TCertifyDlg::UserEdtKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  if(Key == VK_RETURN)
  {    
    PasswordEdt->SetFocus() ;
  }        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -