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

📄 login.cpp

📁 学生信息管理系统
💻 CPP
字号:
// Login.cpp : implementation file
//

#include "stdafx.h"
#include "SIMS.h"
#include "Login.h"
#include "LoginSet.h"
#include <odbcinst.h>

extern CDatabase db;

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLogin dialog


CLogin::CLogin(CWnd* pParent /*=NULL*/)
	: CDialog(CLogin::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLogin)
	m_strDSN = _T("SIMS");
	m_username = _T("");
	m_password = _T("");
	count=1;
	//}}AFX_DATA_INIT
}


void CLogin::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLogin)
	DDX_CBString(pDX, IDC_COMBO1, m_strDSN);
	DDX_Text(pDX, IDC_EDIT1, m_username);
	DDX_Text(pDX, IDC_EDIT2, m_password);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLogin, CDialog)
	//{{AFX_MSG_MAP(CLogin)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLogin message handlers

BOOL CLogin::OnInitDialog() 
{
	CDialog::OnInitDialog();
	UpdateData(false);
	// TODO: Add extra initialization here
	//add datesource
	SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)",
		"DSN=SIMS;DBQ=.\\DataSource\\SIMS.mdb;Description=ODBC数据源;DataDirectory=.\\DataSource");
	//add datesource
	LOGFONT LogFont;
	GetFont()->GetLogFont(&LogFont);
	LogFont.lfHeight+=LogFont.lfHeight/2;
	LogFont.lfWidth+=LogFont.lfWidth/2;
	m_font.CreateFontIndirect(&LogFont);
	GetDlgItem(IDC_STATIC_HEAD)->SetFont(&m_font);
	m_brush.CreateSolidBrush(RGB(74,142,184));
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

HBRUSH CLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	pDC->SetBkMode(TRANSPARENT);
	return m_brush;
}

void CLogin::OnOK() 
{
	UpdateData(true);
	if(!db.IsOpen()) db.Open(m_strDSN);
	CLoginSet rs(&db);
	CString str,strSQL;
	strSQL.Format("select* from USER_PSWD where USER='%s' and PSWD='%s'",m_username,m_password);
	rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	if(rs.GetRecordCount()==0)
	{
		if(count<3)
		{
			MessageBox("输入的用户名或密码错误,请重新输入!","登陆提示");
			count++;
			rs.Close();
		}
		else
		{
			MessageBox("尝试次数太多,程序关闭!","登陆提示");
			rs.Close();
			OnCancel();
		}
	}
	else
	{
		CDialog::OnOK();
	}
}

void CLogin::OnCancel() 
{
	// TODO: Add extra cleanup here
	db.Close();
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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