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

📄 logindlg.cpp

📁 内容包括从VC++的基本范例到项目开发的许多典型的例子。是VC++初学者不可多得的好资料
💻 CPP
字号:
// LoginDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ExMIS.h"
#include "LoginDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLoginDlg dialog


CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLoginDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLoginDlg)
	m_strDataType = _T("");
	m_strPassword = _T("");
	m_strUsername = _T("");
	//}}AFX_DATA_INIT

	m_nPower=0;
}


void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLoginDlg)
	DDX_CBString(pDX, IDC_COMBO_TYPE, m_strDataType);
	DDX_Text(pDX, IDC_EDIT_PASSWORD, m_strPassword);
	DDX_Text(pDX, IDC_EDIT_USERNAME, m_strUsername);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
	//{{AFX_MSG_MAP(CLoginDlg)
	ON_BN_CLICKED(IDC_BTN_LOGIN, OnBtnLogin)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BTN_CANCEL, OnBtnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLoginDlg message handlers

void CLoginDlg::OnOK() 
{
	// TODO: Add extra validation here
	
	CDialog::OnOK();
}

void CLoginDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

void CLoginDlg::OnBtnLogin() 
{
	// TODO: Add your control notification handler code here
	//检查用户名是否输入
	UpdateData(true);
	if(m_strUsername.IsEmpty()||m_strPassword.IsEmpty()||m_strDataType.IsEmpty())
	{
		AfxMessageBox("请将资料填写完整再登录!");
		return;
	}

	_variant_t Holder,SQL;			//添加的
	CString m_strConnString=

	//建立连接
	m_pConn.CreateInstance(__uuidof(Connection));
	m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=StuMIS.mdb","","",-1);

	//建立数据集
	m_pRst.CreateInstance(__uuidof(Recordset));

	//声明对象
	m_strSQL="SELECT password,power FROM UserTab WHERE [username]='"+m_strUsername+"' ";
	_variant_t sql=m_strSQL;
		
	m_pRst->Open(sql,m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

	bool r=false;	//判断是否登录成功
	if(!m_pRst->adoEOF)
	{

		_variant_t Holder=m_pRst->GetCollect((long)0);
		CString password=(char*)_bstr_t(Holder);
		if(password==m_strPassword)
		{
			//获得用户权限
			Holder=m_pRst->GetCollect((long)1);
			m_nPower=(int)V_I2(&Holder);
			r=true;
		}

		m_pRst->Close();
	}
	
	if(!r)
		AfxMessageBox("错误的用户名或密码!");
	else
		CDialog::OnOK();
}

void CLoginDlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	//屏蔽此事件, 即关闭窗口的事件;
	//CDialog::OnClose();
}

void CLoginDlg::OnBtnCancel() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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