www.pudn.com > 111.rar > Dialog_Login.cpp


// 
/****************************************/ 
/*		SchoolManageSystem			    */ 
/*设计者:全佳营						*/ 
/*时间:2004.5.9-2004-5.18				*/ 
/*Email:ghostman@tzc.edu.cn				*/ 
/****************************************/ 
 
// Dialog_Login.cpp : 实现文件 
// 
 
#include "stdafx.h" 
#include "SchoolManageSys_2.h" 
#include "Dialog_Login.h" 
#include ".\dialog_login.h" 
#include "LoginDatabase.h" 
#include "SchoolManageSys_2Dlg.h" 
// CDialog_Login 对话框 
 
IMPLEMENT_DYNAMIC(CDialog_Login, CDialog) 
CDialog_Login::CDialog_Login(CWnd* pParent /*=NULL*/) 
	: CDialog(CDialog_Login::IDD, pParent) 
	, m_userpwd(_T("")) 
{ 
} 
 
CDialog_Login::~CDialog_Login() 
{ 
	if(m_AdoRecordSet.IsOpen()) 
		m_AdoRecordSet.Close(); 
	if(m_AdoConnection.IsOpen()) 
		m_AdoConnection.Close(); 
} 
 
void CDialog_Login::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	DDX_Control(pDX, IDC_COMBO_USERNAME, m_listusers); 
	DDX_Text(pDX, IDC_EDIT_PASSWD, m_userpwd); 
} 
 
 
BEGIN_MESSAGE_MAP(CDialog_Login, CDialog) 
	ON_BN_CLICKED(IDOK, OnBnClickedOk) 
	ON_CBN_SELCHANGE(IDC_COMBO_USERNAME, OnCbnSelchangeComboUsername) 
END_MESSAGE_MAP() 
 
 
// CDialog_Login 消息处理程序 
 
BOOL CDialog_Login::OnInitDialog(){ 
	CDialog::OnInitDialog(); 
 
	CLoginDatabase *dlg=new CLoginDatabase; 
	ASSERT(dlg); 
	INT_PTR nResponse=dlg->DoModal(); 
	if(nResponse==IDOK){ 
		theApp.m_pSkin =GetDlgItem(IDC_SKIN3)->GetControlUnknown(); 
		theApp.m_pSkin->LoadSkin(L"winaqua.skn"); 
		theApp.m_pSkin->ApplySkin((int)m_hWnd); 
 
		//连接Ado数据源 
		 
		if(m_AdoConnection.ConnectSQLServer(m_dbsrc,"schooldata",m_dbuser,m_dbpwd)){	 
			CWnd *pWnd1=CWnd::FindWindow(NULL,"校人事信息管理系统"); 
			((CSchoolManageSys_2Dlg*) pWnd1)->m_AdoConnection=m_AdoConnection; 
			AfxMessageBox("成功连接到本地数据库服务器!"); 
			m_AdoRecordSet.SetAdoConnection(&m_AdoConnection); 
			m_AdoRecordSet.SetCursorLocation(); 
			m_AdoRecordSet.Open("users",adCmdTable); 
			m_AdoConnection.BeginTrans(); 
			if(UpdateRecord(TRUE)){} 
		} 
		else { 
			AfxMessageBox("连接数据库失败"); 
 
		} 
	}else { 
		OnCancel(); 
	} 
 
	return TRUE; 
} 
 
void CDialog_Login::OnBnClickedOk() 
{ 
	// TODO: 在此添加控件通知处理程序代码 
	UpdateData(); 
	if(!m_AdoRecordSet.IsBOF()) 
		m_AdoRecordSet.MoveFirst(); 
	while(!m_AdoRecordSet.IsEOF()){ 
		CString usernametmp,pwd; 
		m_AdoRecordSet.GetCollect("username",usernametmp); 
		m_AdoRecordSet.GetCollect("passwd",pwd); 
		if(usernametmp==m_username&&m_userpwd==pwd) break; 
		m_AdoRecordSet.MoveNext(); 
	} 
	if(!m_AdoRecordSet.IsEOF()) OnOK(); 
	if(m_AdoRecordSet.IsEOF()){ 
		AfxMessageBox("数据库用户密码错误"); 
		m_userpwd=""; 
		UpdateData(FALSE); 
	} 
} 
 
BOOL CDialog_Login::UpdateRecord(BOOL bload){ 
	if(m_AdoRecordSet.GetRecordCount()<0) return FALSE; 
	if(bload){ 
		CString username; 
		int nRecord(0); 
		while(!m_AdoRecordSet.IsEOF()){ 
			m_AdoRecordSet.GetCollect("username",username); 
			m_listusers.AddString(username); 
			nRecord++; 
			m_AdoRecordSet.MoveNext(); 
		} 
		m_listusers.SetCurSel(nRecord); 
		UpdateData(FALSE); 
		return TRUE; 
	}else {} 
} 
void CDialog_Login::OnCbnSelchangeComboUsername() 
{ 
	// TODO: 在此添加控件通知处理程序代码 
	UpdateData(TRUE); 
	m_listusers.GetLBText(m_listusers.GetCurSel(),m_username); 
	UpdateData(FALSE); 
	if(m_username=="用户名"){ 
		AfxMessageBox("请选择一个用户操作"); 
		return; 
	} 
} 
 
void CDialog_Login::OnOK(){ 
	if(m_AdoRecordSet.IsOpen()) 
		m_AdoRecordSet.Cancel(); 
	if(m_AdoConnection.IsOpen()) 
		m_AdoConnection.Cancel(); 
	 
	CDialog::OnOK(); 
} 
 
void CDialog_Login::OnCancel(){ 
	if(m_AdoRecordSet.IsOpen()) 
		m_AdoRecordSet.Cancel(); 
	if(m_AdoConnection.IsOpen()) 
		m_AdoConnection.Cancel(); 
	 
	CDialog::OnCancel(); 
}