📄 loaddialog.cpp
字号:
// LoadDialog.cpp : implementation file
//
#include "stdafx.h"
#include "CourseChose.h"
#include "LoadDialog.h"
#include ".\loaddialog.h"
#include "RegisterDialog.h"
#include "MysqlOperat.h"
#include <string>
#include <iostream>
using namespace std;
int CLoadDialog::m_bState = LOAD_STATE_ERROR;
long CLoadDialog::m_dwID = 0;
extern CMysqlOperat MysqlOp;
// CLoadDialog dialog
IMPLEMENT_DYNAMIC(CLoadDialog, CDialog)
CLoadDialog::CLoadDialog(CWnd* pParent /*=NULL*/)
: CDialog(CLoadDialog::IDD, pParent)
, m_strID(0)
, m_strPasswd(_T(""))
{
}
CLoadDialog::~CLoadDialog()
{
}
void CLoadDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDE_LOAD_USERNAME, m_strID);
DDX_Text(pDX, IDE_LOAD_PASSWORD, m_strPasswd);
}
BEGIN_MESSAGE_MAP(CLoadDialog, CDialog)
ON_BN_CLICKED(IDB_LOAD_LOAD, OnBnClickedLoadLoad)
ON_BN_CLICKED(IDB_LOAD_CANCLE, OnBnClickedLoadCancle)
ON_STN_CLICKED(IDS_LOAD_REGISTER, OnStnClickedLoadRegister)
END_MESSAGE_MAP()
// CLoadDialog message handlers
void CLoadDialog::OnBnClickedLoadLoad()
{
// TODO: Add your control notification handler code here
int static nTime = 0;
int nResult = 0;
SQLRETURN retCode;
DWORD dwError = 0;
SQLINTEGER dwSid = 0;
static SQLCHAR szPasswd[20] = "\0";
static char szBuffer[20] = "\0";
UpdateData();
if (this->m_strID == 0)
{
MessageBox("请输入ID");
return;
}
else
{
m_dwID = m_strID;
}
if (this->m_strPasswd.IsEmpty())
{
MessageBox("请输入密码");
return;
}
char szSQL[100] = "\0";
sprintf(szSQL, "select password from student where sid = %ld", m_strID);
retCode = SQLExecDirectA(MysqlOp.hstmt, (SQLCHAR*)szSQL, SQL_NTS);
if ( (retCode != SQL_SUCCESS) && (retCode != SQL_SUCCESS_WITH_INFO) )
{
dwError = GetLastError();
cout << "SQLExecDirectA error = " << dwError << endl;
MessageBox("数据库操作失败");
}
nTime++;
retCode = SQLFetch(MysqlOp.hstmt);
if (retCode == SQL_ERROR)
{
MessageBox("查询出错!");
}
else if (retCode == SQL_NO_DATA)
{
//判断是否是老师登陆
sprintf(szSQL, "select tpassword from teacher where tid = %ld", m_strID);
retCode = SQLExecDirectA(MysqlOp.hstmt, (SQLCHAR*)szSQL, SQL_NTS);
if ( (retCode != SQL_SUCCESS) && (retCode != SQL_SUCCESS_WITH_INFO) )
{
dwError = GetLastError();
cout << "SQLExecDirectA error = " << dwError << endl;
}
retCode = SQLFetch(MysqlOp.hstmt);
if (retCode == SQL_ERROR)
{
MessageBox("查询出错!");
}
else if (retCode == SQL_NO_DATA)
{
MessageBox("不存在此用户!");;
}
else
{
SQLGetData(MysqlOp.hstmt, 1, SQL_CHAR, szPasswd, 16, (SQLINTEGER*)&nResult);
if (!m_strPasswd.Compare((char*)szPasswd))
{
this->m_bState = LOAD_STATE_TEACHER;
OnOK();
return;
}
else
{
MessageBox("登陆错误");
}
}
}
else
{
SQLGetData(MysqlOp.hstmt, 1, SQL_CHAR, szPasswd, 16, (SQLINTEGER*)&nResult);
if (!m_strPasswd.Compare((char*)szPasswd))
{
this->m_bState = LOAD_STATE_STUDENT;
OnOK();
return;
}
}
if (nTime > 3)
{
this->m_bState = 0;
OnOK();
return;
}
else
{
sprintf(szBuffer, "你还有%d次机会。%d次机会后,系统将退出。", 3 - nTime, 3 - nTime);
MessageBox(szBuffer);
}
}
void CLoadDialog::OnBnClickedLoadCancle()
{
// TODO: Add your control notification handler code here
if (IDYES == MessageBox(TEXT("本系统即将退出"), 0, MB_YESNO))
{
this->m_bState = 0;
OnOK();
}
}
void CLoadDialog::OnStnClickedLoadRegister()
{
// TODO: Add your control notification handler code here
CRegisterDialog myRegister;
myRegister.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -