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

📄 teacherctrdlg.cpp

📁 教学管理系统
💻 CPP
字号:
// TeacherCtrDlg.cpp : implementation file
//

#include "stdafx.h"
#include "COdbc.h"
#include "TeacherCtrDlg.h"
#include <afxdb.h>
#include "RecordTeacher.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTeacherCtrDlg dialog


CTeacherCtrDlg::CTeacherCtrDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTeacherCtrDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTeacherCtrDlg)
	m_tdepartment = _T("");
	m_tname = _T("");
	m_tlevel = _T("");
	m_namecheck = FALSE;
	m_levelcheck = FALSE;
	m_departmentcheck = FALSE;
	//}}AFX_DATA_INIT
}


void CTeacherCtrDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTeacherCtrDlg)
	DDX_Control(pDX, IDC_TEACHER_INFO, m_tlist);
	DDX_Text(pDX, IDC_TEACHER_DEPARTMENT, m_tdepartment);
	DDX_Text(pDX, IDC_TEACHER_NAME, m_tname);
	DDX_Text(pDX, IDC_TEACHER_LEAVEL, m_tlevel);
	DDX_Check(pDX, IDC_NAMECHECK, m_namecheck);
	DDX_Check(pDX, IDC_LEAVELCHECK, m_levelcheck);
	DDX_Check(pDX, IDC_DEPARTCHECK, m_departmentcheck);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTeacherCtrDlg, CDialog)
	//{{AFX_MSG_MAP(CTeacherCtrDlg)
	ON_BN_CLICKED(IDC_TEACHER_ADD, OnTeacherAdd)
	ON_BN_CLICKED(IDC_TEACHER_DEL, OnTeacherDel)
	ON_BN_CLICKED(IDC_TEACHER_CHANGE, OnTeacherChange)
	ON_BN_CLICKED(IDC_TEACHER_SLECET, OnTeacherSlecet)
	ON_BN_CLICKED(IDC_CLEAN, OnClean)
	ON_BN_CLICKED(IDC_TEACHER_CONCEL, OnTeacherConcel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTeacherCtrDlg message handlers

void CTeacherCtrDlg::OnTeacherAdd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if(m_tname.IsEmpty())
	{
		MessageBox("please input name!");
		return;
	}
	CDatabase db;
	BOOL bRtn;
	CString sql,tmp;
	try {
	bRtn = db.OpenEx("DSN=教学管理系统;UID=sa", CDatabase::noOdbcDialog);
	}catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}catch (CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if (!bRtn)
	printf("连接数据库失败!");
	sql = "insert into teacher (teacher_name, department, teacher_level) values ('";
	sql +=m_tname;
	sql +="','";
	sql +=m_tdepartment;
	sql +="','";
	sql	+=m_tlevel;
	sql +="');" ;
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}

}

void CTeacherCtrDlg::OnTeacherDel() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if(m_tname .IsEmpty())
	{
		MessageBox("please input id!");
		return;
	}
	CDatabase db;
	BOOL bRtn;
	CString sql,tmp;
	try {
	bRtn = db.OpenEx("DSN=教学管理系统;UID=sa", CDatabase::noOdbcDialog);
	}catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}catch (CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if (!bRtn)
	printf("连接数据库失败!");
	sql = "delete from teacher where teacher_name ='" ;
	sql +=m_tname;
	sql +="';" ;
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}
	db.Close();

}

void CTeacherCtrDlg::OnTeacherChange() 
{
	// TODO: Add your control notification handler code here
	int i=0;
	// TODO: Add your control notification handler code here
	UpdateData(true);
	CDatabase db;
	BOOL bRtn;
	CString sql,tmp;
	try {
	bRtn = db.OpenEx("DSN=教学管理系统;UID=sa", CDatabase::noOdbcDialog);
	}catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}catch (CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if (!bRtn)
	printf("连接数据库失败!");
	sql = "update teacher set ";
	if(!m_tdepartment.IsEmpty())
	{	
		sql +="department='";
		sql +=m_tdepartment;
		sql +="'";
		i=1;
	}
	if(!m_tlevel.IsEmpty())
	{	
		if(i==1)
		{
			sql +=",";
		}
		sql +="teacher_level='";
		sql +=m_tlevel;
		sql +="'";
		i=1;
	}
	if(i==0)
	{	
		MessageBox("please input tiaojian!");
		return;
	}
	sql +=" where teacher_name='";
	sql +=m_tname;
	sql +="';" ;
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}
	db.Close();
}

void CTeacherCtrDlg::OnTeacherSlecet() 
{
	// TODO: Add your control notification handler code here
	int i=0;
	int j=0;
	CDatabase db;
	BOOL bRtn;
	CString sql;
	UpdateData(true);
	sql = "";
	if(!m_tname.IsEmpty())
	{	
		sql +="Select * From teacher where teacher_name='";
		sql +=m_tname;
		sql +="'";
		i=1;
		if(m_namecheck==1)
		{
			sql +=" union ";
			i=0;
		} 
		j=1;
	}
	if(!m_tdepartment.IsEmpty())
	{		
		if(m_departmentcheck==0)
		{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From teacher where ";
			sql +="department='";
			sql +=m_tdepartment;
			sql +="'";
			i=1;
			j=1;
		}
		else
		{
				sql ="Select * From teacher where department='"+m_tdepartment\
				+"' union "+sql;
			j=1;
		}
	}
	if(!m_tlevel.IsEmpty())
	{	
		if(m_levelcheck==0)
		{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From teacher where ";
			sql +="teacher_level='";
			sql +=m_tlevel;
			sql +="'";
			i=1;
			j=1;
		}
		else
		{
				sql ="Select * From teacher where teacher_level='"+m_tlevel+"' \
					union "+sql;
			j=1;
		}
	}
	if(j==0)
	{	
		MessageBox("please input tiaojian!");
		return;
	}
	sql.TrimRight("union ");

	CRecordTeacher rs(&db);
	try {
	bRtn = rs.Open(CRecordset::snapshot,sql);
	} catch(CDBException *pDBEx) {
	pDBEx->ReportError();
	} catch(CMemoryException *pMemEx) {
	pMemEx->ReportError();
	}
	if(!bRtn) {
	AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR);
	return ;
	}
	/* 4、逐条获取查询结果*/
	for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext()) {
	// TODO: Add code here
	}
	/* 5、关闭记录集、数据库*/

		/* 清除列表中原有的项*/
	CString tmp;
	m_tlist.DeleteAllItems();
	/* 在列表中显示纪录*/
	LVITEM item;
	int nRow=0;
	item.mask = LVIF_TEXT;
	item.state = LVIS_SELECTED;
	item.stateMask = LVIS_SELECTED;
	item.lParam = 1;
	item.iIndent = 0;
	for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext(),nRow++)
	{
	
		item.iItem = nRow;
		int	iSubItem = 0;
		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_teacher_name);
		item.cchTextMax = strlen(item.pszText);
		m_tlist.InsertItem(&item); // 第一列应用InsertItem()

		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_department);
		item.cchTextMax = strlen(item.pszText);
		m_tlist.SetItem(&item); // 其余列用SetItem()

		item.iSubItem = iSubItem++;
		item.pszText = (char*)(LPCTSTR)(rs.m_teacher_level);
		item.cchTextMax = strlen(item.pszText);
		m_tlist.SetItem(&item);		
	}
	
	rs.Close();
	db.Close();

}

void CTeacherCtrDlg::OnClean() 
{
	// TODO: Add your control notification handler code here
	m_tlist.DeleteAllItems();
	m_tname = _T("");
	m_tdepartment = _T("");
	m_departmentcheck = FALSE;
	m_namecheck = FALSE;
	m_levelcheck = FALSE;
	UpdateData(false);

}

void CTeacherCtrDlg::OnTeacherConcel() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

BOOL CTeacherCtrDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	LPTSTR lpszCols[]={"姓名","系别","职称",NULL}; // 列标题
	int nWidth[] = {89,83,80,0}; // 列宽度
	LV_COLUMN lvcol;
	lvcol.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	lvcol.fmt = LVCFMT_LEFT;
	for(int i=0;lpszCols[i]!=NULL;i++)
	{
		lvcol.cx = nWidth[i];
		lvcol.pszText = lpszCols[i];
		m_tlist.InsertColumn(i,&lvcol);
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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