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

📄 coursectrdlg.cpp

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

#include "stdafx.h"
#include "COdbc.h"
#include "CourseCtrDlg.h"
#include <afxdb.h>
#include "RecordCourse.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCourseCtrDlg dialog


CCourseCtrDlg::CCourseCtrDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCourseCtrDlg::IDD, pParent)
{

	//{{AFX_DATA_INIT(CCourseCtrDlg)
	m_courseid = _T("");
	m_coursename = _T("");
	m_coursetype = _T("");
	m_namecheck = FALSE;
	m_typecheck = FALSE;
	m_idcheck = FALSE;
	//}}AFX_DATA_INIT

}


void CCourseCtrDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCourseCtrDlg)
	DDX_Control(pDX, IDC_COURSE_INFO, m_tList);
	DDX_Text(pDX, IDC_COURSE_ID, m_courseid);
	DDX_Text(pDX, IDC_COURSE_NAME, m_coursename);
	DDX_Text(pDX, IDC_COURSE_TYPE, m_coursetype);
	DDX_Check(pDX, IDC_NAMECHECK, m_namecheck);
	DDX_Check(pDX, IDC_TYPECHECK, m_typecheck);
	DDX_Check(pDX, IDC_IDCHECK, m_idcheck);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCourseCtrDlg, CDialog)
	//{{AFX_MSG_MAP(CCourseCtrDlg)
	ON_BN_CLICKED(IDC_COURSE_ADD, OnCourseAdd)
	ON_BN_CLICKED(IDC_COURSE_DEL, OnCourseDel)
	ON_BN_CLICKED(IDC_COURSE_CHANGE, OnCourseChange)
	ON_BN_CLICKED(IDC_COURSE_SLECET, OnCourseSlecet)
	ON_BN_CLICKED(IDC_CLEAN, OnClean)
	ON_BN_CLICKED(IDC_COURSE_CONCEL, OnCourseConcel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCourseCtrDlg message handlers

BOOL CCourseCtrDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	LPTSTR lpszCols[]={"课程号","课程名","课程类别",NULL}; // 列标题
	int nWidth[] = {80,80,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
}

void CCourseCtrDlg::OnCourseAdd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if(m_courseid.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 = "insert into lesson (lesson_id, lesson_name, lesson_type ) values ('";
	sql +=m_courseid;
	sql +="','";
	sql +=m_coursename;
	sql +="','";
	sql	+=m_coursetype;
	sql +="');" ;
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}
	db.Close();
}

void CCourseCtrDlg::OnCourseDel() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if(m_courseid.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 lesson where lesson_id ='" ;
	sql +=m_courseid ;
	sql +="';" ;
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}
	db.Close();
}

void CCourseCtrDlg::OnCourseChange() 
{
	// 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 lesson set ";
	if(!m_coursename.IsEmpty())
	{	
		sql +="lesson_name='";
		sql +=m_coursename;
		sql +="'";
		i=1;
	}
	if(!m_coursetype.IsEmpty())
	{	
		if(i==1)
		{
			sql +=",";
		}
		sql +="lesson_type='";
		sql +=m_coursetype;
		sql +="'";
		i=1;
	}
	if(i==0)
	{	
		MessageBox("please input tiaojian!");
		return;
	}
	sql +=" where lesson_id='";
	sql +=m_courseid;
	sql +="';" ;
	try {
	db.ExecuteSQL(sql);
	} catch (CDBException *pDBEx) {
	pDBEx->ReportError();
	}
	db.Close();
}

void CCourseCtrDlg::OnCourseSlecet() 
{
	// 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_courseid.IsEmpty())
	{	
		sql +="Select * From lesson where lesson_id='";
		sql +=m_courseid;
		sql +="'";
		i=1;
		if(m_idcheck==1)
		{
			sql +=" union ";
			i=0;
		} 
		j=1;
	}
	if(!m_coursename.IsEmpty())
	{		
		if(m_namecheck==0)
		{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From lesson where ";
			sql +="lesson_name='";
			sql +=m_coursename;
			sql +="'";
			i=1;
			j=1;
		}
		else
		{
				sql ="Select * From lesson where lesson_name='"+m_coursename+"' \
					union "+sql;
			j=1;
		}
	}
	if(!m_coursetype.IsEmpty())
	{	
		if(m_typecheck==0)
		{
			if(i==1)
				sql +=" and ";
			else sql +="Select * From lesson where ";
			sql +="lesson_type='";
			sql +=m_coursetype;
			sql +="'";
			i=1;
			j=1;
		}
		else
		{
				sql ="Select * From lesson where lesson_type='"+m_coursetype+"' \
					union "+sql;
			j=1;
		}
	}
	if(j==0)
	{	
		MessageBox("please input tiaojian!");
		return;
	}
	sql.TrimRight("union ");

	CRecordCourse 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_lesson_id);
		item.cchTextMax = strlen(item.pszText);
		m_tList.InsertItem(&item); // 第一列应用InsertItem()

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

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

void CCourseCtrDlg::OnClean() 
{
	// TODO: Add your control notification handler code here
	m_tList.DeleteAllItems();
	m_courseid = _T("");
	m_coursename = _T("");
	m_coursetype = _T("");
	m_idcheck = FALSE;
	m_namecheck = FALSE;
	m_typecheck = FALSE;
	UpdateData(false);
}

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

⌨️ 快捷键说明

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