📄 checkdlg.cpp
字号:
// CheckDlg.cpp : implementation file
//
#include "stdafx.h"
#include "库存管理系统.h"
#include "CheckDlg.h"
#include "MenuDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCheckDlg dialog
CCheckDlg::CCheckDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCheckDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckDlg)
stPosition = _T("");
stID = _T("");
stPassword = _T("");
pConn = ((CMyApp *)AfxGetApp())->m_nConnection;
count = 0;
//}}AFX_DATA_INIT
}
void CCheckDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckDlg)
DDX_Control(pDX, CHECKIN_POSITION, coPosition);
DDX_CBString(pDX, CHECKIN_POSITION, stPosition);
DDX_Text(pDX, CHECKIN_ID, stID);
DDX_Text(pDX, CHECKIN_PASSWORD, stPassword);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCheckDlg, CDialog)
//{{AFX_MSG_MAP(CCheckDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckDlg message handlers
void CCheckDlg::OnOK()
{
// TODO: Add extra validation here
//验证是否填满登录所需信息
UpdateData(TRUE);
if(stPosition==_T("")||stID==_T("")||stPassword==_T(""))
AfxMessageBox(_T("用户登录信息未填满!\n请填完整后再点击登录按钮!"),MB_ICONINFORMATION);
else
{
try
{
_RecordsetPtr pRecord;
pRecord.CreateInstance("ADODB.Connection");
_variant_t ra;
CString strSql="select * from 用户";
BSTR bstrSQL = strSql.AllocSysString();
// 执行SQL语句得到一个记录集把其指针赋值给m_pRecordset
pRecord=pConn->Execute(bstrSQL,&ra,adCmdText);
bool i=0;
while(!pRecord->adoEOF && i==0)//遍历所有记录
{
_variant_t Theid; //VARIANT数据类型
Theid =pRecord->GetCollect("ID");//得到字段id的值
if(Theid== _variant_t(stID))
{
_variant_t Thepos;
_variant_t Thekey;
Thepos =pRecord->GetCollect("Position");
Thekey =pRecord->GetCollect("PassWord");
if(Thepos== _variant_t(stPosition) && Thekey== _variant_t(stPassword))
{
//在此处编写连接进入主窗口
CMenuDlg dlg;
CDialog::OnOK();
dlg.DoModal();
i=1;
}
else
pRecord->MoveNext();
}
else
pRecord->MoveNext();//转到下一条纪录
}
if(i==0)
{if(pRecord->adoEOF && count<3)
{AfxMessageBox(_T("没有该帐户或密码填写不正确或没选对登陆身份!"),MB_ICONINFORMATION);
count++;
}
else if(count>=3)
{AfxMessageBox(_T("你已经连续输入了三次错误,已无权限继续输入!"),MB_ICONINFORMATION);
::CoUninitialize();
CDialog::OnOK();
}
}
}
catch(_com_error &e)
{
::AfxMessageBox( e.ErrorMessage());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -