📄 logindlg.cpp
字号:
// LoginDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DeviceDBS.h"
#include "LoginDlg.h"
#include "DeviceDBSDlg.h"
#include "User.h"
#include "PowerHelper.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLoginDlg dialog
extern CDatabase m_db;
extern User user;
extern PowerHelper helper;
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoginDlg)
m_strPswd = _T("123");
m_strUserid = _T("kate");
//}}AFX_DATA_INIT
}
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoginDlg)
DDX_Text(pDX, IDC_PASSWORD, m_strPswd);
DDX_Text(pDX, IDC_USERID, m_strUserid);
//}}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
if(!m_db.IsOpen()){
AfxMessageBox("数据库连接失败");
return ;
}
UpdateData(true);
TRY{
CRecordset rs(&m_db);
CString sql;
//获取用户信息
sql.Format("Select * from user_info "
"where loginID = '%s' and password = '%s' ",m_strUserid,m_strPswd);
rs.Open(CRecordset::snapshot, sql);
if(!rs.IsEOF()) {
AfxMessageBox("登陆成功");
//初始化User
CString id;
rs.GetFieldValue((short)0, id);
user.setId(id);
CString pwd;
rs.GetFieldValue(1,pwd);
user.setPwd(pwd);
CString name;
rs.GetFieldValue(2,name);
user.setName(name);
CString birth;
rs.GetFieldValue(3,birth);
user.setBirth(birth);
CString gender;
rs.GetFieldValue(4,gender);
user.setGender(gender);
CDBVariant var;
rs.GetFieldValue(5, var, SQL_C_SSHORT);
if (var.m_dwType != DBVT_NULL)
user.setPower(var.m_iVal);
var.Clear();
//初始化powerhelper
helper.setUserInfo(&user);
CDialog::OnOK();
}else{
AfxMessageBox("登陆失败");
}
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CLoginDlg::OnCancel()
{
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -