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

📄 memberview.cpp

📁 VC大作业
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		    	m_MemberReSet.m_MemPlace=m_MemberEditDlg.m_MemPlace;
		    	m_MemberReSet.m_MemIns=m_MemberEditDlg.m_MemIns;
		    	m_MemberReSet.m_MemSpe=m_MemberEditDlg.m_MemSpe;
		    	m_MemberReSet.m_MemSchool=m_MemberEditDlg.m_MemSchool;
		    	m_MemberReSet.m_MemBed=m_MemberEditDlg.m_MemBed;
		    	m_MemberReSet.m_MemEmail=m_MemberEditDlg.m_MemEmail;
		    	m_MemberReSet.m_MemYear=m_MemberEditDlg.m_MemYear;
		    	m_MemberReSet.m_MemCard=m_MemberEditDlg.m_MemCard;
		    	m_MemberReSet.m_MemPhone=m_MemberEditDlg.m_MemPhone;
			    m_MemberReSet.m_MemHadd=m_MemberEditDlg.m_MemHadd;
			    m_MemberReSet.m_MemHphone=m_MemberEditDlg.m_MemHphone;
		    	m_MemberReSet.m_Remark=m_MemberEditDlg.m_Remark;
		    	//如果可以更新,则更新到数据库
                if(m_MemberReSet.CanUpdate())
				{
		    		m_MemberReSet.Update();			
				}
		    	//更新完毕,关闭数据库
		    	m_MemberReSet.Close();

			}
	    	else
			{	
		    	//关闭数据库
		    	if(m_MemberReSet.IsOpen())
		    		m_MemberReSet.Close();
		    	//提示用户
		    	AfxMessageBox("该记录不存在,无法修改!");
		    	return;
			}
		}
	    catch(CDBException*e)
		{
	    	e->ReportError ();
	     	return;
		}

	    //将用户信息及时更新到ListCtrl中
        ctl->SetItemText(m_CurUser,0,m_MemberEditDlg.m_MemID);
    	ctl->SetItemText(m_CurUser,1,m_MemberEditDlg.m_MemName);
     	ctl->SetItemText(m_CurUser,2,m_MemberEditDlg.m_MemSex);
    	ctl->SetItemText(m_CurUser,3,m_MemberEditDlg.m_MemIns);
    	ctl->SetItemText(m_CurUser,4,m_MemberEditDlg.m_MemSpe);
    	ctl->SetItemText(m_CurUser,5,m_MemberEditDlg.m_MemYear);
    	ctl->SetItemText(m_CurUser,6,m_MemberEditDlg.m_MemPhone);
    	ctl->SetItemText(m_CurUser,7,m_MemberEditDlg.m_MemBed);
	}
}
	



void CMemberView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
	EditCurUser();
}

void CMemberView::LookMember()
{
    //创建一个MemberDialog的实例
 	CMemberDialog m_MemberDialog;
 	CMemberReSet m_MemberReSet;
	CString chrTemp=FindPosition();
	if(chrTemp=="")
		return;
    if(m_MemberReSet.IsOpen())
 		m_MemberReSet.Close();
 	m_MemberReSet.m_strFilter.Format("MemID LIKE '%s'",chrTemp);
	m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
 	//输出匹配上条件用户记录,直到记录为空
   	if(m_MemberReSet.IsOpen() && !m_MemberReSet.IsEOF())
 	{	
 	    //开始显示记录的内容
 		m_MemberDialog.m_MemID=m_MemberReSet.m_MemID;
        m_MemberDialog.m_MemName=m_MemberReSet.m_MemName;
        m_MemberDialog.m_MemSex=m_MemberReSet.m_MemSex;
 		m_MemberDialog.m_MemBorn=m_MemberReSet.m_MemBorn;
 		m_MemberDialog.m_MemPolity=m_MemberReSet.m_MemPolity;
 		m_MemberDialog.m_MemNative=m_MemberReSet.m_MemNative;
 		m_MemberDialog.m_MemPlace=m_MemberReSet.m_MemPlace;
 		m_MemberDialog.m_MemIns=m_MemberReSet.m_MemIns;
 		m_MemberDialog.m_MemSpe=m_MemberReSet.m_MemSpe;
 		m_MemberDialog.m_MemSchool=m_MemberReSet.m_MemSchool;
 		m_MemberDialog.m_MemBed=m_MemberReSet.m_MemBed;
 		m_MemberDialog.m_MemEmail=m_MemberReSet.m_MemEmail;
 		m_MemberDialog.m_MemYear=m_MemberReSet.m_MemYear;
 		m_MemberDialog.m_MemCard=m_MemberReSet.m_MemCard;
 		m_MemberDialog.m_MemPhone=m_MemberReSet.m_MemPhone;
 		m_MemberDialog.m_MemHadd=m_MemberReSet.m_MemHadd;
 		m_MemberDialog.m_MemHphone=m_MemberReSet.m_MemHphone;
 		m_MemberDialog.m_Remark=m_MemberReSet.m_Remark;
     }
 	if(m_MemberDialog.DoModal()==IDCANCEL)
 	{
 		//如果用户选择取消按钮,则退出
 		return;
 	}
 	UpdateData(FALSE);
 }


void CMemberView::DelCurUser()//删除
{
	//建立一个指针,用以操作ListCtrl输出用户记录
	CListCtrl *ctl;
	ctl=&GetListCtrl();
	//寻找当前选中的记录的位置
	POSITION pos=ctl->GetFirstSelectedItemPosition();
	if (pos==NULL)
	{
		//如果没有选择记录,则提示并退出
		AfxMessageBox("请先选中一条记录!");
		return;
	}
	//获取当前记录的位置游标
	int m_CurUser=ctl->GetNextSelectedItem(pos);
	//创建一个临时字符串来保存当前用户信息
	char chrTemp[21] = {'\0'};
	//取得用户ID
	ctl->GetItemText(m_CurUser,0,chrTemp,sizeof(char[20]));
	//创建CMemberReSet的实例
	CMemberReSet m_MemberReSet;
	if(MessageBox("删除该学生同时会删除该生所有成绩记录,确定删除记录?","删除确认",MB_YESNO|MB_ICONQUESTION)==IDYES)
	{
	   try
	   {
		 //删除个人信息
	    if(m_MemberReSet.IsOpen())
			m_MemberReSet.Close();
	  	m_MemberReSet.m_strFilter.Format("MemID LIKE '%s' order by MemID",chrTemp);
		m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
		//如果用户记录存在,则进行修改操作
		if(m_MemberReSet.IsOpen() && !m_MemberReSet.IsEOF())
		{	
			//设置编辑当前记录
			m_MemberReSet.Delete();
			//更新完毕,关闭数据库
			m_MemberReSet.Close();
		}
		else	//考虑特例,如果操作中用户信息不存在了
		{	
			//关闭数据库
			if(m_MemberReSet.IsOpen())
				m_MemberReSet.Close();
			//提示用户
			AfxMessageBox("该记录不存在,无法删除!");
			return;
		}
		
		//删除对应的所有个人成绩
		CScoreReSet m_ScoreReSet;
		if(m_ScoreReSet.IsOpen())
			m_ScoreReSet.Close();
	  	CString sql;
		sql.Format("select * from score where MemID='%s'",chrTemp);
		m_ScoreReSet.Open(CRecordset::snapshot,sql,CRecordset::none);
		//如果用户记录存在,则进行修改操作
		while(!m_ScoreReSet.IsEOF())
		{	
			
			//设置编辑当前记录
			m_ScoreReSet.Delete();
			m_ScoreReSet.MoveNext();
		}
			//更新完毕,关闭数据库
			m_ScoreReSet.Close();
		
	}
	catch(CDBException*e)
	{
		e->ReportError ();
		return;
	}
	//在ListCtrl中删除当前用户信息
	ctl->DeleteItem(m_CurUser);
	}
}


void CMemberView::OnPaint()
{
	RemoveAll();
	//创建一个CListCtrl指针
	CListCtrl *ctl;
	ctl=&GetListCtrl(); //指向CListView的CListCtrl
	//记录用户序号
    int i = 0;
	CString strTemp;
	CMemberReSet m_MemberReSet;
    try
    {
	   		//关闭记录集
		if(m_MemberReSet.IsOpen())
			m_MemberReSet.Close();
      m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
	//如果用户记录存在,则进行修改操作
	   while(!m_MemberReSet.IsEOF())
	   {			
			//设置ListCtrl记录的Item值
	       	ctl->InsertItem(i,m_MemberReSet.m_MemID);
			ctl->SetItemText(i,1,m_MemberReSet.m_MemName);
			ctl->SetItemText(i,2,m_MemberReSet.m_MemSex);
			ctl->SetItemText(i,3,m_MemberReSet.m_MemIns);
			ctl->SetItemText(i,4,m_MemberReSet.m_MemSpe);
			ctl->SetItemText(i,5,m_MemberReSet.m_MemYear);
			ctl->SetItemText(i,6,m_MemberReSet.m_MemPhone);
			ctl->SetItemText(i,7,m_MemberReSet.m_MemBed);
	  		m_MemberReSet.MoveNext();
	   }
		//关闭记录集
		if(m_MemberReSet.IsOpen())
			m_MemberReSet.Close();
	}
	//意外捕获
	catch(CDBException*e)
	{
		e->ReportError ();
		return;
	}

}

CString CMemberView::FindPosition()
{
	//建立一个指针,用以操作ListCtrl输出用户记录
 	CListCtrl *ctl;
 	ctl=&GetListCtrl();
	CString chrTemp;
 	//寻找当前选中的记录的位置
	int row=ctl->GetSelectionMark();
    chrTemp=ctl->GetItemText(row,0);
	if (chrTemp=="")
 	{
 		//如果没有选择记录,则提示并退出
 	AfxMessageBox("请先选中一条记录的学号!");
	//	return chrTemp;
	}
	return chrTemp;

}


void CMemberView::MemberAdd()
{
	CMemberAdd m_MemberEditDlg;
	if(m_MemberEditDlg.DoModal()!=IDOK)
		return;
	CMemberReSet m_MemberReSet;
	try
	{
		if(m_MemberReSet.IsOpen())
			m_MemberReSet.Close();
		m_MemberReSet.m_strFilter.Format("MemID like '%s' order by MemID ASC",m_MemberEditDlg.m_MemID.operator LPCTSTR());
		m_MemberReSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
        //输出匹配上查询到的用户记录,直到记录为空
        if(!m_MemberReSet.IsEOF())
		{
			m_MemberReSet.Close();
			AfxMessageBox("学号已存在!");
			return;
		}
		m_MemberReSet.AddNew();
        m_MemberReSet.m_MemID=m_MemberEditDlg.m_MemID;
		m_MemberReSet.m_MemName=m_MemberEditDlg.m_MemName;
		m_MemberReSet.m_MemSex=m_MemberEditDlg.m_MemSex;
		m_MemberReSet.m_MemBorn=m_MemberEditDlg.m_MemBorn;
		m_MemberReSet.m_MemPolity=m_MemberEditDlg.m_MemPolity;
		m_MemberReSet.m_MemNative=m_MemberEditDlg.m_MemNative;
		m_MemberReSet.m_MemPlace=m_MemberEditDlg.m_MemPlace;
		m_MemberReSet.m_MemIns=m_MemberEditDlg.m_MemIns;
		m_MemberReSet.m_MemSpe=m_MemberEditDlg.m_MemSpe;
		m_MemberReSet.m_MemYear=m_MemberEditDlg.m_MemYear;
		m_MemberReSet.m_MemSchool=m_MemberEditDlg.m_MemSchool;
		m_MemberReSet.m_MemBed=m_MemberEditDlg.m_MemBed;
		m_MemberReSet.m_MemEmail=m_MemberEditDlg.m_MemEmail;
		m_MemberReSet.m_MemCard=m_MemberEditDlg.m_MemCard;
		m_MemberReSet.m_MemPhone=m_MemberEditDlg.m_MemPhone;
		m_MemberReSet.m_MemHadd=m_MemberEditDlg.m_MemHadd;
		m_MemberReSet.m_MemHphone=m_MemberEditDlg.m_MemHphone;
		m_MemberReSet.m_Remark=m_MemberEditDlg.m_Remark;

		//添加成功刷新到表中显示
		AfxMessageBox("添加成功!");
		CListCtrl *ctl;
	    ctl=&GetListCtrl(); 
    	ctl->InsertItem(0,m_MemberReSet.m_MemID);
	    ctl->SetItemText(0,1,m_MemberReSet.m_MemName);
    	ctl->SetItemText(0,2,m_MemberReSet.m_MemSex);
    	ctl->SetItemText(0,3,m_MemberReSet.m_MemIns);
    	ctl->SetItemText(0,4,m_MemberReSet.m_MemSpe);
    	ctl->SetItemText(0,5,m_MemberReSet.m_MemYear);
    	ctl->SetItemText(0,6,m_MemberReSet.m_MemPhone);
    	ctl->SetItemText(0,7,m_MemberReSet.m_MemBed);
		if(m_MemberReSet.CanUpdate())
		{
			m_MemberReSet.Update();
		}

	if(m_MemberReSet.IsOpen())
			m_MemberReSet.Close();
	}
	catch(CDBException *e)
	{
		e->Delete();
		return;
	}
}


⌨️ 快捷键说明

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