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

📄 setdlg.cpp

📁 基于指纹技术的学生考勤系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		sql.Format("select *from tab_Depart where DepartName='%s'",departName);
		CRecordset rs2(&m_db);
		rs2.Open(CRecordset::dynaset,sql);
		if(!rs2.IsEOF())
		{
			CDBVariant var;
			rs2.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				departId=var.m_lVal;
			var.Clear();
		}
		sql.Format("Insert into tab_Class(ClassID,ClassName,DepartID) values(%d,'%s',%d)",
				atoi(id1),name,departId);
		TRACE(sql);
		m_db.ExecuteSQL(sql);	
		InsertClassItem(id1,name,departName);
	}	
	CATCH(CDBException,ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}

void CSetDlg::OpenClassData()
{
	if(!m_db.IsOpen()){
			MessageBox("数据库没有打开!");
			return;
	}
	TRY{
		CRecordset rs(&m_db);
		CString sql;
		sql.Format("select *from tab_Depart order by DepartID");
		rs.Open(CRecordset::dynaset,sql);
		while(!rs.IsEOF()){		//显示系别控件
			int id;
			CString temp,name;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				id=var.m_lVal;
			var.Clear();
			temp.Format("%d",id);
				rs.GetFieldValue(1,name);
			m_cDepart.AddString(name);
			rs.MoveNext();
		}
		rs.Close();
		sql.Format("select *from tab_Class order by ClassID");
		rs.Open(CRecordset::dynaset,sql);
		while(!rs.IsEOF()){		//显示班级列表框控件数据
			int id,departId;
			CString temp1,name,temp2;
			CDBVariant var;
			//获得班级编号
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				id=var.m_lVal;
			var.Clear();
			temp1.Format("%d",id);
			//获得班级名称
			rs.GetFieldValue(1,name);
			//获得系别编号 转换为了系名显示
			rs.GetFieldValue((short)2,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				departId=var.m_lVal;
			var.Clear();
			CRecordset rs2(&m_db);
			sql.Format("select *from tab_Depart where DepartID=%d",departId);
			rs2.Open(CRecordset::dynaset,sql);
			if(!rs2.IsEOF())
				rs2.GetFieldValue(1,temp2);
			InsertClassItem(temp1,name,temp2);
			rs.MoveNext();
		}
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}

void CSetDlg::InsertDb(CString table,CString id, CString name)
{
	CString sql;
	CRecordset rs(&m_db);
	
	TRY{
		switch(m_iSetType)
		{
			case 1:
				sql.Format("select *from %s where DepartID=%s",table,id);
				rs.Open(CRecordset::dynaset,sql);
				if(!rs.IsEOF())
				{
					MessageBox("该编号已经存在!");
					m_strID.Empty();
					UpdateData(FALSE);
					return;
				}
				rs.Close();
				sql.Format("select *from %s where DepartName='%s'",table,name);
				rs.Open(CRecordset::dynaset,sql);
				if(!rs.IsEOF())
				{
					MessageBox("该名称已经存在!");
					m_strName.Empty();
					UpdateData(FALSE);
					return;
				}
				sql.Format("Insert into tab_Depart(DepartID,DepartName) values(%d,'%s')",
						atoi(id),name);
				break;
			case 2:
			/*	sql.Format("select *from %s where ClassID=%s",table,id);
				rs.Open(CRecordset::dynaset,sql);
				if(!rs.IsEOF())
				{
					MessageBox("该编号已经存在!");
					m_strID.Empty();
					UpdateData(FALSE);
					return;
				}
				char cDepart[20];
				int istrlen,iDepartID;

				istrlen=m_cDepart.GetLBText(m_cDepart.GetCurSel(),cDepart);
				if(istrlen!=0)
				{
					sql.Format("Select DepartID from tab_Depart where DepartName='%s'",_T(cDepart));
					CRecordset rs2;
					rs2.Open(CRecordset::dynaset,sql);
					if(!rs2.IsEOF())
					{
						iDepartID;
						CDBVariant var;
						rs2.GetFieldValue((short)0,var,SQL_C_SLONG);
						if(var.m_dwType!=DBVT_NULL)
							iDepartID=var.m_iVal;
						var.Clear();
					}
				}
				sql.Format("Insert into tab_Class(ClassID,ClassName,DepartID) values(%d,'%s',%d)",
						atoi(id),name,iDepartID);
				break;*/
			case 3:
				sql.Format("select *from %s where CourseID=%s",table,id);
				rs.Open(CRecordset::dynaset,sql);
				if(!rs.IsEOF())
				{
					MessageBox("该编号已经存在!");
					m_strID.Empty();
					UpdateData(FALSE);
					return;
				}
				sql.Format("Insert into tab_Course(CourseID,CourseName) values(%d,'%s')",
						atoi(id),name);
				break;
			case 4:
				sql.Format("select *from %s where ClassroomID=%s",table,id);
				rs.Open(CRecordset::dynaset,sql);
				if(!rs.IsEOF())
				{
					MessageBox("该编号已经存在!");
					m_strID.Empty();
					UpdateData(FALSE);
					return;
				}
				sql.Format("Insert into tab_Classroom(ClassroomID,ClassroomName) values(%d,'%s')",
						atoi(id),name);
				break;
		}
		
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		InsertItemData(id,name);	//显示数据
	}

	CATCH(CDBException,ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}

void CSetDlg::InsertItemData(CString id, CString name)
{
	int nIndex=m_listShSet.GetItemCount();
	LV_ITEM lvItem;
	lvItem.mask=LVIF_TEXT;
	lvItem.iItem=nIndex;
	lvItem.iSubItem=0;
/*	CString temp;
	temp.Format("%d",id);*/
	lvItem.pszText=(char*)(LPCTSTR)id;
	m_listShSet.InsertItem(&lvItem);
	m_listShSet.SetItemText(nIndex,1,name);
}

void CSetDlg::Open_data(CString tabName, CString strID)
{
	if(!m_db.IsOpen()){
			MessageBox("数据库没有打开!");
			return;
	}
	TRY{
		CRecordset rs(&m_db);
		CString sql;
		sql.Format("select *from %s order by %s",tabName,strID);
		rs.Open(CRecordset::dynaset,sql);
		while(!rs.IsEOF()){
			int id;
			CString temp,name;
			CDBVariant var;
			rs.GetFieldValue((short)0,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				id=var.m_iVal;
			var.Clear();
			temp.Format("%d",id);
			rs.GetFieldValue(1,name);
			
			InsertItemData(temp,name);
			rs.MoveNext();
		}	
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}

BOOL CSetDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|
					LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;
	m_listShSet.SetExtendedStyle(dwExStyle);
	switch(m_iSetType)
	{
		case 1:
			SetWindowText("系别更新");
			GetDlgItem(IDC_COMBO_DEPART)->ShowWindow(SW_HIDE);
			GetDlgItem(IDC_STATIC_DEPART)->ShowWindow(SW_HIDE);
			m_listShSet.InsertColumn(0,"系编号",LVCFMT_CENTER,100);
			m_listShSet.InsertColumn(1,"系名称",LVCFMT_CENTER,160);
			//显示数据
			Open_data("tab_Depart","DepartID");
			break;
		case 2:
			SetWindowText("班级更新");
			m_listShSet.InsertColumn(0,"班级编号",LVCFMT_CENTER,80);
			m_listShSet.InsertColumn(1,"班级名称",LVCFMT_CENTER,100);
			m_listShSet.InsertColumn(2,"系名",LVCFMT_CENTER,120);
			//--显示数据
			OpenClassData();
			break;
		case 3:
			SetWindowText("课程更新");
			GetDlgItem(IDC_COMBO_DEPART)->ShowWindow(SW_HIDE);
			GetDlgItem(IDC_STATIC_DEPART)->ShowWindow(SW_HIDE);
			m_listShSet.InsertColumn(0,"课程编号",LVCFMT_CENTER,100);
			m_listShSet.InsertColumn(1,"课程名称",LVCFMT_CENTER,160);
			Open_data("tab_Course","CourseID");
			break;
		case 4:
			SetWindowText("课室更新");
			GetDlgItem(IDC_COMBO_DEPART)->ShowWindow(SW_HIDE);
			GetDlgItem(IDC_STATIC_DEPART)->ShowWindow(SW_HIDE);
			m_listShSet.InsertColumn(0,"课室编号",LVCFMT_CENTER,100);
			m_listShSet.InsertColumn(1,"课室名称",LVCFMT_CENTER,160);
			Open_data("tab_Classroom","ClassroomID");
			break;
	}
	GetDlgItem(IDC_BTN_ADD)->EnableWindow(TRUE);
	GetDlgItem(IDC_BTN_MOD)->EnableWindow(FALSE);
	GetDlgItem(IDC_BTN_DEL)->EnableWindow(FALSE);

	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 + -