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

📄 opclass.cpp

📁 ADO封装类
💻 CPP
字号:
#include "StdAfx.h"
#include "OPClass.h"
#include "ado.h"

CDataClass::CDataClass(void)
{
}

CDataClass::~CDataClass(void)
{
}


/************************************************************************/
/* 获取所有班级列表
/************************************************************************/
BOOL CDataClass::LoadClassInfo(CStringArray& a)
{
	a.RemoveAll();
	adoPack::CADORecordset& rs = theApp.m_RecordSet;
	
	if(!rs.Open("Class", adoPack::CADORecordset::openTable))
		return FALSE;


	while (!rs.IsEOF())
	{
		CString s;
		rs.GetFieldValue("ClassName", s);
		a.Add(s);

		rs.MoveNext();
	}
	return TRUE;
}

/************************************************************************/
/* 判断指定班级是否存在
/************************************************************************/
BOOL CDataClass::IsClassExsist(CString strClassName)
{
	CString strSQL = "SELECT COUNT(ID) FROM Class WHERE ClassName = '" + strClassName + "'";
	theApp.m_RecordSet.Open(strSQL);
	int nCount = 0;
	theApp.m_RecordSet.GetFieldValue(0, nCount);

	return nCount > 0;
}


/************************************************************************/
/* 添加班级
/************************************************************************/
BOOL CDataClass::AddClass(CString strClassName)
{
	if(IsClassExsist(strClassName))
	{
		AfxMessageBox("该班级已经存在了");
		return FALSE;
	}
	 
	CString strSQL = "INSERT INTO Class(ClassName) VALUES('"   + strClassName + "')";
	return theApp.m_Connection.ExecuteSQL(strSQL);
}

/************************************************************************/
/* 删除班级
/************************************************************************/
BOOL CDataClass::DeleteClass(CString strClassName)
{
	if(!IsClassExsist(strClassName))
	{
		AfxMessageBox("该班级不存在");
		return FALSE;
	}

	CString strSQL =  "DELETE FROM Class WHERE ClassName = '" + strClassName + "'";
	return theApp.m_Connection.ExecuteSQL(strSQL);
}

/************************************************************************/
/* 修改班级信息
/************************************************************************/
BOOL CDataClass::ModifyClass(CString strOldName, CString strNewName)
{
	if(!IsClassExsist(strOldName))
	{
		AfxMessageBox("该班级不存在");
		return FALSE;
	}

	CString strSQL = "UPDATE Class SET ClassName = '" + strNewName + "' WHERE ClassName='" + strOldName + "'";
	theApp.m_Connection.ExecuteSQL(strSQL);

	return TRUE;
}







/************************************************************************/
/* 获取一个班的所有成员信息列表
/************************************************************************/
BOOL CDataClass::LoadClassMember(CPtrArray& ptr, CString strClass)
{
	ptr.RemoveAll();

	adoPack::CADORecordset& rs = theApp.m_RecordSet;

	if(!rs.Open("SELECT* FROM Member  WHERE ClassName = '" + strClass + "'"))
		return FALSE;


	while (!rs.IsEOF())
	{
		Member* p = new Member;
		rs.GetFieldValue("ID", p->strID);
		rs.GetFieldValue("Name", p->strName);
		rs.GetFieldValue("ClassName", p->strClass);
		rs.GetFieldValue("Role", p->nRole);
		rs.GetFieldValue("State", p->nState);
		rs.GetFieldValue("IP", p->strIP);
		ptr.Add(p);

		rs.MoveNext();
	}
	return TRUE;
}


/************************************************************************/
/* 判断指定成员是否存在
/************************************************************************/
BOOL CDataClass::IsMemberExsist(CString strID)
{
	CString strSQL = "SELECT COUNT(ID) FROM Member WHERE ID = '" + strID + "'";
	theApp.m_RecordSet.Open(strSQL);
	int nCount = 0;
	theApp.m_RecordSet.GetFieldValue(0, nCount);

	return nCount > 0;
}


/************************************************************************/
/*	添加一个成员
/************************************************************************/
BOOL CDataClass::AddMember(Member* pMember)
{
	if(IsMemberExsist(pMember->strID))
	{
		AfxMessageBox("该成员已经存在了");
		return FALSE;
	}

	CString strRole, strState;
	strRole.Format("%d", pMember->nRole);
	strState.Format("%d", pMember->nState);

	CString strSQL = "INSERT INTO Member(ID, Name, ClassName, Role, State, IP) VALUES('"  + pMember->strID + "', '"
																						  + pMember->strName + "', '"
																						  + pMember->strClass + "', "
																						  + strRole + ", " 
																						  + strState + ", '" 
																						  + pMember->strIP + "')";


	return theApp.m_Connection.ExecuteSQL(strSQL);

}


/************************************************************************/
/* 删除一个成员
/************************************************************************/
BOOL CDataClass::DeleteMember(CString strID)
{
	if(!IsMemberExsist(strID))
	{
		AfxMessageBox("该成员不存在");
		return FALSE;
	}

	CString strSQL =  "DELETE FROM Member WHERE ID = '" + strID + "'";
	return theApp.m_Connection.ExecuteSQL(strSQL);
}


/************************************************************************/
/* 修改成员信息 
/************************************************************************/
BOOL CDataClass::ModifyMember(CString strID, Member* pMember)
{
	if(!IsMemberExsist(strID))
	{
		AfxMessageBox("该成员不存在");
		return FALSE;
	}

	adoPack::CADORecordset& rs = theApp.m_RecordSet;
	if(!rs.Open("SELECT * FROM Member WHERE ID = '" + strID + "'"))
		return FALSE;


	rs.MoveFirst();
	rs.Edit();
	rs.SetFieldValue("ID",			pMember->strID);
	rs.SetFieldValue("Name",		pMember->strName);
	rs.SetFieldValue("ClassName",	pMember->strClass);
	rs.SetFieldValue("Role", 		pMember->nRole);
	rs.SetFieldValue("State",		pMember->nState);
	rs.SetFieldValue("IP",   		pMember->strIP);
	rs.Update();

	return TRUE;



	//CString strRole, strState;
	//strRole.Format("%d", pMember->nRole);
	//strState.Format("%d", pMember->nState);

	//CString strSQL = "UPDATE Member SET ID		  = '" + pMember->strID 
	//								+ "', Name	  = '" + pMember->strName
	//								+ "', ClassName = '" + pMember->strClass
	//								+ "', IP        = '" + pMember->strIP
	//								+ "', Role      = "  + strRole
	//								+ ",  State     = "  + strState 
	//								+ "	WHERE ID = '" + strID + "'";

	//return theApp.m_Connection.ExecuteSQL(strSQL);
}

/************************************************************************/
/* 获取一个指定成员的信息
/************************************************************************/
BOOL CDataClass::GetMember(Member& m, CString strID)
{
	if(!IsMemberExsist(strID))
	{
		AfxMessageBox("该成员不存在");
		return FALSE;
	}

	adoPack::CADORecordset& rs = theApp.m_RecordSet;
	if(!rs.Open("SELECT * FROM Member WHERE ID = '" + strID + "'"))
		return FALSE;
	
	rs.GetFieldValue("ID",			m.strID);
	rs.GetFieldValue("Name",		m.strName);
	rs.GetFieldValue("ClassName",	m.strClass);
	rs.GetFieldValue("Role",		m.nRole);
	rs.GetFieldValue("State",		m.nState);
	rs.GetFieldValue("IP",			m.strIP);

	return TRUE;
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -