📄 login.cpp
字号:
// Login.cpp : 实现文件
//
#include "stdafx.h"
#include "lfsw.h"
#include "Login.h"
#include ".\login.h"
// CLogin 对话框
IMPLEMENT_DYNAMIC(CLogin, CDialog)
CLogin::CLogin(CWnd* pParent /*=NULL*/)
: CDialog(CLogin::IDD, pParent)
, realname(_T(""))
, username(_T(""))
{
}
CLogin::~CLogin()
{
}
void CLogin::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_USERNAME, m_username);
}
BEGIN_MESSAGE_MAP(CLogin, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()
// CLogin 消息处理程序
void CLogin::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
static int times = 0;
times ++;
CString strName,strPass;
(GetDlgItem(IDC_USERNAME))->GetWindowText(strName);
(GetDlgItem(IDC_PASSWORD))->GetWindowText(strPass);
CString sql="select * from Employ where username= '";
sql = sql + strName;
sql = sql + "' and password = '";
sql = sql + strPass;
sql = sql + "'";
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if(m_pRecordset->adoEOF)
{
AfxMessageBox("密码错误!");
if(times == 3)
{
AfxMessageBox("你已经三次输错密码!请与管理员联系!");
OnCancel();
}
return ;
}
else
{
username = (CString)(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("username");
realname = (CString)(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("realname");
}
}
catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("读取用户名和密码错误:%s",e.ErrorMessage());
AfxMessageBox(temp);
return ;
}
OnOK();
}
BOOL CLogin::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
int i,recordcount;
CString sql="select * from Employ";
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
recordcount=m_pRecordset->GetRecordCount();//Get records total.
if(!m_pRecordset->adoEOF)
{
for(i=0;i<recordcount;i++)
{
m_username.AddString((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("username"));
m_pRecordset->MoveNext();
}
}
m_pRecordset->Close();
}
catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("读取用户名错误:%s",e.ErrorMessage());
AfxMessageBox(temp);
return false;
}
if(i>0)
m_username.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -