📄 logindlg.cpp
字号:
// LoginDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "SaleManager.h"
#include "LoginDlg.h"
#include ".\logindlg.h"
// CLoginDlg 对话框
IMPLEMENT_DYNAMIC(CLoginDlg, CDialog)
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
}
CLoginDlg::~CLoginDlg()
{
}
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_USER, m_UserName);
DDX_Text(pDX, IDC_EDIT_PASS, m_PassWord);
}
BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
ON_BN_CLICKED(IDOK,OnOK)
END_MESSAGE_MAP()
// CLoginDlg 消息处理程序
BOOL CLoginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
//m_pConnection->ConnectionString = "File Name=SaleManagerdata.udl";
m_pConnection->ConnectionTimeout = 20;
hr = m_pConnection->Open("Provider=SQLOLEDB;Server=.;Database=SaleMessage;uid=sa;pwd=huangguo;","","",adConnectUnspecified);
if(FAILED(hr))
{
AfxMessageBox("打开失败");
return TRUE;
}
}
else
{
AfxMessageBox("创建连接实例失败!");
return TRUE;
}
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
return TRUE;
}
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CLoginDlg::OnOK()
{
_RecordsetPtr m_pRecordset;
HRESULT hr;
hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
if(FAILED(hr))
{
AfxMessageBox("创建实例失败!");
PostMessage(WM_QUIT);
}
CString strSQL = "select * from LoginTable";
try
{
hr = m_pRecordset->Open (_variant_t(strSQL),
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(SUCCEEDED(hr))
{
UpdateData(TRUE);
_variant_t var;
CString strValue;
int curItem = 0;
bool FlagUserName = FALSE;
bool FlagPassWord = FALSE;
int CanUse;
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect ("AccountName");
if(var.vt != VT_NULL)
strValue = (LPTSTR) bstr_t (var);
if(m_UserName == strValue)
{
FlagUserName = TRUE;
break;
}
m_pRecordset->MoveNext ();
}//while
if(FlagUserName == FALSE)
{
AfxMessageBox ("用户名错误!");
m_UserName = "";
m_PassWord = "";
UpdateData (FALSE);
GetDlgItem (IDC_EDIT_USER)->SetFocus();
}
else{
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect ("Pass");
if(var.vt != VT_NULL)
strValue = (LPTSTR) bstr_t (var);
if(m_PassWord == strValue)
{
FlagPassWord = TRUE;
var = m_pRecordset->GetCollect("CanUse");
if(var.vt != VT_NULL)
CanUse = (int)_variant_t(var);
break;
}
m_pRecordset->MoveNext();
}//while
if(FlagPassWord == FALSE)
{
AfxMessageBox("密码错误!");
m_PassWord = "";
UpdateData (FALSE);
GetDlgItem (IDC_EDIT_PASS)->SetFocus();
return;
}//if
if(FlagPassWord && FlagUserName)
{
if(CanUse)
{
m_pRecordset->Close();
m_pRecordset = NULL;
Send();
m_pConnection->Close();
CDialog::OnOK();
}
else
{
AfxMessageBox(_T("该帐号已经禁用!"));
m_UserName = "";
m_PassWord = "";
UpdateData (FALSE);
GetDlgItem (IDC_EDIT_USER)->SetFocus();
}
}//if
}
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return;
}
}
void CLoginDlg::Send()
{
_RecordsetPtr m_pRecordset;
HRESULT hr;
hr = m_pRecordset.CreateInstance(__uuidof(Recordset));
if(FAILED(hr))
{
AfxMessageBox("创建实例失败!");
PostMessage(WM_QUIT);
}
CString strSQL ;
strSQL.Format("select * from LoginTable where AccountName = '%s'",m_UserName);
try
{
hr = m_pRecordset->Open (_bstr_t(strSQL),
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
int AccountNum;
_variant_t var;
var = m_pRecordset->GetCollect("AccountNum");
AccountNum = (int)_variant_t(var);
m_AccountNum = AccountNum;
HRESULT hrP;
_RecordsetPtr m_pRecordsetP;
hrP = m_pRecordsetP.CreateInstance(__uuidof(Recordset));
if(FAILED(hrP))
{
AfxMessageBox(_T("创建实例失败!"));
return;
}
strSQL.Empty();
strSQL.Format ("select * from PowTable where AccountNum = %d",AccountNum);
hrP = m_pRecordsetP->Open (_bstr_t(strSQL),
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
CString strValue;
var = m_pRecordsetP->GetCollect ("RealName");
strValue = (LPCSTR)_bstr_t(var);
m_RealName = strValue;
var = m_pRecordsetP->GetCollect ("PowerName");
strValue = (LPCSTR)_bstr_t(var);
m_PowerName = strValue;
m_pRecordset->Close();
m_pRecordsetP->Close();
m_pRecordset = NULL;
m_pRecordsetP = NULL;
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
PostMessage(WM_QUIT,0,0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -