⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loaddialog.cpp

📁 学生选课系统,功能齐全,什么登陆,查询,选课,删除课程,什么都有,有数据库
💻 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 + -