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

📄 logindlg.cpp

📁 在本次课程设计中
💻 CPP
字号:
// LoginDlg.cpp : implementation file
//

#include "stdafx.h"
#include "超市收银管理系统.h"
#include "LoginDlg.h"

#include "LoginDlgSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLoginDlg dialog
extern CDatabase m_database; 
extern CString m_ID; 
extern loginusertype;

CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLoginDlg::IDD, pParent)
{
	count=0;
	//{{AFX_DATA_INIT(CLoginDlg)
	m_userpassword = _T("");
	m_userID = _T("");
	m_usertype = _T("");
	//}}AFX_DATA_INIT
}


void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLoginDlg)
	DDX_Text(pDX, IDC_EDIT_USER_PASSWORD, m_userpassword);
	DDX_Text(pDX, IDC_EDIT_USER_NAME, m_userID);
	DDX_CBString(pDX, IDC_COMBO, m_usertype);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
	//{{AFX_MSG_MAP(CLoginDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

void CLoginDlg::OnOK() 
{
	// TODO: Add extra validation here
		//先设置为未登陆状态
	BOOL bLogin=FALSE;

	CLoginDlgSet * m_recordset=new CLoginDlgSet(&m_database);
	CString strSQL;

	//读入用户输入的信息
	UpdateData(TRUE);

	int type=1;
	if(m_usertype.Compare("收银员")==0)
		type=1;
	else
		if(m_usertype.Compare("管理员")==0)
			type=2;

//测试数据库是否打开
	
		if(!m_database.IsOpen()) 
		{ 
			if(!m_database.Open(_T("ODBC;DSN=超市收银管理系统")))
			{
				MessageBox( "数据库未打开 "); 
				exit(0);
			}
		}

	//查询是否有匹配的用户
	/*		所有在使用ODBC操作数据库时,需要注意:
			对于不返回结果集的SQL语句,我们应该使用CDatabase::ExecuteSQL()来执行,如:删除(DELETE),插入(INSERT),更新(UPDATE). 
			对于需要返回结果集的SQL语句,我们需要使用CRecordSet::Open()方法来执行,如:查询(SELECT)。*/

			strSQL.Format("select * from USERS where USER_ID='%s' AND USER_PASSWORD='%s' AND USER_TYPE='%d'",m_userID,m_userpassword,type);
			m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);

	//若查询结果为空

		if(m_recordset->GetRecordCount()==0)
			{
				if(count<3)
				{
					MessageBox("用户名或密码不正确!");
				    count++;
				}
				else
				{
					MessageBox("错误次数达三次以上!","本窗口将关闭!");
					EndDialog(IDCANCEL);
				}
			}

			//成功登陆
			else
			{
				m_recordset->GetFieldValue("USER_ID",m_ID);
				bLogin=TRUE;
				loginusertype=type;
			}

			//若登陆成功,返回主框架IDOK
			if(bLogin)
			{

				MessageBox("欢迎登陆超市收银管理系统");
				EndDialog(IDOK);
			}
			else
				m_database.Close();
			
	
//	CDialog::OnOK();
}

⌨️ 快捷键说明

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