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

📄 crdbsdlg.cpp

📁 数据库客户信息管理系统,C++,SQL下完成.进入系统前需要身份验证、用户名、密码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			rs.GetFieldValue(1, strName);
			//向结识途径信息名称组合框添加结识途径信息名称.
			m_comboApproach.AddString(strName);
			rs.MoveNext();	
		}
		m_comboApproach.SetCurSel(0);
	}
	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 CCRDBSDlg::RefreshProfComboData()
{
	m_comboProfession.ResetContent();
	TRY{
		CRecordset rs(&m_db);
		//打开所有的职位信息记录.
		rs.Open(CRecordset::dynaset, "select * from profession_info_tab");
		while (!rs.IsEOF()) {
			CString strName;
			//获取职位信息名称字段值
			rs.GetFieldValue(1, strName);
			//向职位信息名称组合框添加职位信息名称.
			m_comboProfession.AddString(strName);
			rs.MoveNext();	
		}
		m_comboProfession.SetCurSel(0);
	}
	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 CCRDBSDlg::RefreshVocComboData()
{
	m_comboVocation.ResetContent();
	TRY{
		CRecordset rs(&m_db);
		//打开所有的行业信息记录.
		rs.Open(CRecordset::dynaset, "select * from vocation_info_tab");
		while (!rs.IsEOF()) {
			CString strName;
			//获取行业信息名称字段值
			rs.GetFieldValue(1, strName);
			//向行业信息名称组合框添加行业信息名称.
			m_comboVocation.AddString(strName);
			rs.MoveNext();	
		}
		m_comboVocation.SetCurSel(0);
	}
	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 CCRDBSDlg::InsertHRInfoItem(int id,CString name,CString area,CString prof,CString voc,CString com,CString appr,CString email,CString phone,CString mobile,CString interest,CString memo)
{
	//获取当前的纪录条数.
	int nIndex = m_listHR.GetItemCount();
	LV_ITEM lvItem;
	lvItem.mask = LVIF_TEXT ;	
	lvItem.iItem = nIndex;				//行数
	lvItem.iSubItem = 0;
	CString temp ;
	temp.Format("%d",id);
	lvItem.pszText = (char*)(LPCTSTR)temp;		//第一列
	//在最后一行插入记录值.
	m_listHR.InsertItem(&lvItem);	
	//设置该行的其他列的值.
	m_listHR.SetItemText(nIndex,1,name);
	m_listHR.SetItemText(nIndex,2,area);	
	m_listHR.SetItemText(nIndex,3,prof);	
	m_listHR.SetItemText(nIndex,4,voc);	
	m_listHR.SetItemText(nIndex,5,com);	
	m_listHR.SetItemText(nIndex,6,appr);
	m_listHR.SetItemText(nIndex,7,email);	
	m_listHR.SetItemText(nIndex,8,phone);	
	m_listHR.SetItemText(nIndex,9,mobile);	
	m_listHR.SetItemText(nIndex,10,interest);
	m_listHR.SetItemText(nIndex,11,memo);	
}

void CCRDBSDlg::OnClickListArea(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nItem = m_listArea.GetNextItem(-1, LVNI_SELECTED);
	if(nItem != -1){
		//从列表框控件中获取选择的地区信息.
		CString name = m_listArea.GetItemText(nItem,1);
		//将选择的地区信息显示在ID为IDC_EDIT_CONFIG_AREA的编辑框控件中
		GetDlgItem(IDC_EDIT_CONFIG_AREA)->SetWindowText(name);
	}		
	*pResult = 0;
}

void CCRDBSDlg::OnClickListHr(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nItem = m_listHR.GetNextItem(-1, LVNI_SELECTED);
	if(nItem != -1){
		//从列表框控件的第nItem+1行获取数据,以将这些数据显示到客户信息配置参数控件中.
		m_strName = m_listHR.GetItemText(nItem,1);
		m_strSelectedArea = m_listHR.GetItemText(nItem,2); 
		m_strSelectedProfession = m_listHR.GetItemText(nItem,3);
		m_strSelectedVocation = m_listHR.GetItemText(nItem,4);
		m_strCompany = m_listHR.GetItemText(nItem,5);
		m_strSelectedApproach = m_listHR.GetItemText(nItem,6);
		m_strEmail = m_listHR.GetItemText(nItem,7); 
		m_strPhone = m_listHR.GetItemText(nItem,8);
		m_strMobile = m_listHR.GetItemText(nItem,9);
		m_strInterest = m_listHR.GetItemText(nItem,10);
		m_strMemo = m_listHR.GetItemText(nItem,11);
		//把设备列表框控件中当前已选择行的数据,更新到客户信息参数的控件中.
		UpdateData(FALSE);
	}		
	*pResult = 0;
}

void CCRDBSDlg::OnClickListProfession(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nItem = m_listProfession.GetNextItem(-1, LVNI_SELECTED);
	if(nItem != -1){
		//从列表框控件中获取选择的职位信息.
		CString name = m_listProfession.GetItemText(nItem,1);
		//将选择的职位信息显示在ID为IDC_EDIT_CONFIG_PROFESSION的编辑框控件中
		GetDlgItem(IDC_EDIT_CONFIG_PROFESSION)->SetWindowText(name);
	}		
	*pResult = 0;
}

void CCRDBSDlg::OnClickListVocation(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nItem = m_listVocation.GetNextItem(-1, LVNI_SELECTED);
	if(nItem != -1){
		//从列表框控件中获取选择的行业信息.
		CString name = m_listVocation.GetItemText(nItem,1);
		//将选择的行业信息显示在ID为IDC_EDIT_CONFIG_VOCATION的编辑框控件中
		GetDlgItem(IDC_EDIT_CONFIG_VOCATION)->SetWindowText(name);
	}		
	*pResult = 0;
}

void CCRDBSDlg::OnClickListAppraoch(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nItem = m_listApproach.GetNextItem(-1, LVNI_SELECTED);
	if(nItem != -1){
		//从列表框控件中获取选择的结识途径信息.
		CString name = m_listApproach.GetItemText(nItem,1);
		//将选择的结识途径信息显示在ID为IDC_EDIT_CONFIG_APPROACH的编辑框控件中
		GetDlgItem(IDC_EDIT_CONFIG_APPROACH)->SetWindowText(name);
	}		
	*pResult = 0;
}

void CCRDBSDlg::OnBtnAreaAdd() 
{
	//从界面控件中获取信息更新到控件变量中.
	if(!UpdateData())
		return;
	if(m_strConfigArea.IsEmpty())
		return;
	TRY{
		CRecordset rs(&m_db);
		CString sql;
		//打开记录集,获取最大的地区ID值.
		rs.Open(CRecordset::dynaset, 
			"Select max(area_id) from area_info_tab");
		//设置新添加记录的地区ID值.
		int newID = 1;
		//如果数据库里面已经有记录了,则新的地区ID是地区ID最大值+1
		if(!rs.IsEOF()) {
			CDBVariant var;
			rs.GetFieldValue((short)0, var, SQL_C_SLONG);
			if (var.m_dwType != DBVT_NULL)	
				newID = var.m_iVal + 1;
		}
        //插入新的地区信息记录. 
		sql.Format("Insert into area_info_tab(area_id,"
			"area_name) "
			"VALUES("
			"%d,'%s')",newID,m_strConfigArea);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//向界面中插入新的地区信息.
		InsertConfigItem(&m_listArea,newID,m_strConfigArea);
		//更新地区信息组合框的数据
		RefreshAreaComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox (szError);
	}
	END_CATCH				
}

void CCRDBSDlg::OnBtnAreaMod() 
{
	if(!UpdateData())
		return;
	if(m_strConfigArea.IsEmpty())
		return;
	int nItem = m_listArea.GetNextItem(-1, LVNI_SELECTED);
	//如果没有选择要修改的纪录,返回.
	if(nItem == -1){
		AfxMessageBox("没有选择要修改的地区信息");
		return;
	}	
	//从列表框控件中获取选择的地区信息.
	int id = atoi(m_listArea.GetItemText(nItem,0));	
	TRY{
		CRecordset rs(&m_db);
		CString sql;
        //更新新的地区信息记录. 
		sql.Format("update area_info_tab "
			"set area_name = '%s'  "
			"where area_id = %d",m_strConfigArea,id);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//修改界面上的值.
		m_listArea.SetItemText(nItem,1,m_strConfigArea);
		//更新地区信息组合框的数据
		RefreshAreaComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox (szError);
	}
	END_CATCH				
}

void CCRDBSDlg::OnBtnAreaDel() 
{
	int nItem = m_listArea.GetNextItem(-1, LVNI_SELECTED);
	//如果没有选择要删除的纪录,返回.
	if(nItem == -1){
		AfxMessageBox("没有选择要删除的地区信息");
		return;
	}
	//从列表框控件中获取选择的地区信息.
	int id = atoi(m_listArea.GetItemText(nItem,0));	
	TRY{
		CString deletedSql;
		//删除地区信息
		deletedSql.Format("delete from area_info_tab where area_id = %d",id);
		m_db.ExecuteSQL(deletedSql);
		//删除界面上的数据
		m_listArea.DeleteItem(nItem);
		//更新地区信息数据
		RefreshAreaComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox (szError);
	}
	END_CATCH			
}

void CCRDBSDlg::OnBtnApproachAdd() 
{
	//从界面控件中获取信息更新到控件变量中.
	if(!UpdateData())
		return;
	if(m_strConfigApproach.IsEmpty())
		return;
	TRY{
		CRecordset rs(&m_db);
		CString sql;
		//打开记录集,获取最大的结识途径ID值.
		rs.Open(CRecordset::dynaset, 
			"Select max(Approach_id) from Approach_info_tab");
		//设置新添加记录的结识途径ID值.
		int newID = 1;
		//如果数据库里面已经有记录了,则新的结识途径ID是结识途径ID最大值+1
		if(!rs.IsEOF()) {
			CDBVariant var;
			rs.GetFieldValue((short)0, var, SQL_C_SLONG);
			if (var.m_dwType != DBVT_NULL)	
				newID = var.m_iVal + 1;
		}
        //插入新的结识途径信息记录. 
		sql.Format("Insert into Approach_info_tab(Approach_id,"
			"Approach_name) "
			"VALUES("
			"%d,'%s')",newID,m_strConfigApproach);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//向界面中插入新的结识途径信息.
		InsertConfigItem(&m_listApproach,newID,m_strConfigApproach);
		//更新结识途径信息组合框的数据
		RefreshApprComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox (szError);
	}
	END_CATCH				
}

void CCRDBSDlg::OnBtnApproachMod() 
{
	if(!UpdateData())
		return;
	if(m_strConfigApproach.IsEmpty())
		return;
	int nItem = m_listApproach.GetNextItem(-1, LVNI_SELECTED);
	//如果没有选择要修改的纪录,返回.
	if(nItem == -1){
		AfxMessageBox("没有选择要修改的结识途径信息");
		return;
	}	
	//从列表框控件中获取选择的结识途径信息.
	int id = atoi(m_listApproach.GetItemText(nItem,0));	
	TRY{
		CRecordset rs(&m_db);
		CString sql;
        //更新新的结识途径信息记录. 
		sql.Format("update Approach_info_tab "
			"set Approach_name = '%s'  "
			"where Approach_id = %d",m_strConfigApproach,id);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//修改界面上的值.
		m_listApproach.SetItemText(nItem,1,m_strConfigApproach);
		//更新结识途径信息组合框的数据
		RefreshApprComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox (szError);
	}
	END_CATCH					
}

void CCRDBSDlg::OnBtnApproachDel() 
{
	int nItem = m_listApproach.GetNextItem(-1, LVNI_SELECTED);
	//如果没有选择要删除的纪录,返回.
	if(nItem == -1){
		AfxMessageBox("没有选择要删除的结识途径信息");
		return;
	}
	//从列表框控件中获取选择的结识途径信息.
	int id = atoi(m_listApproach.GetItemText(nItem,0));	
	TRY{
		CString deletedSql;
		//删除地区信息
		deletedSql.Format("delete from Approach_info_tab where Approach_id = %d",id);
		m_db.ExecuteSQL(deletedSql);
		//删除界面上的数据
		m_listApproach.DeleteItem(nItem);
		//更新地区信息数据
		RefreshApprComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox (szError);
	}
	END_CATCH			
}

void CCRDBSDlg::OnBtnProfessionAdd() 
{
	// TODO: Add your control notification handler code here
	if(!UpdateData())
		return;
	if(m_strConfigProfession.IsEmpty())
		return;
	TRY{
		CRecordset rs(&m_db);
		CString sql;
		//打开记录集,获取最大的职位ID值.
		rs.Open(CRecordset::dynaset, 
			"Select max(Profession_id) from Profession_info_tab");
		//设置新添加记录的职位ID值.
		int newID = 1;
		//如果数据库里面已经有记录了,则新的职位ID是职位ID最大值+1
		if(!rs.IsEOF()) {
			CDBVariant var;
			rs.GetFieldValue((short)0, var, SQL_C_SLONG);
			if (var.m_dwType != DBVT_NULL)	
				newID = var.m_iVal + 1;
		}
        //插入新的职位信息记录. 
		sql.Format("Insert into Profession_info_tab(Profession_id,"
			"Profession_name) "
			"VALUES("
			"%d,'%s')",newID,m_strConfigProfession);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//向界面中插入新的职位信息.
		InsertConfigItem(&m_listProfession,newID,m_strConfigProfession);
		//更新职位信息组合框的数据
		RefreshProfComboData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox (ex->m_strError);
		AfxMessageBox (ex->m_strStateNativeOrigin);		
	}
	AND_CATCH(CException,e)
	{

⌨️ 快捷键说明

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