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

📄 mypredlg.cpp

📁 单个班级学生成绩管理系统:本管理系统只能管理一个班级.本来我开始的构想是可以管理多个班级
💻 CPP
📖 第 1 页 / 共 2 页
字号:
       m_pRecordset->PutCollect("Name",_variant_t(m_name));
       m_pRecordset->PutCollect("Chinese", _variant_t((short)m_chinese));
       m_pRecordset->PutCollect("Math",_variant_t((short)m_math));
       m_pRecordset->PutCollect("English",_variant_t((short)m_english));
       m_pRecordset->PutCollect("Physics",_variant_t((short)m_physics));
       m_pRecordset->PutCollect("Chemistry",_variant_t((short)m_chemistry));
       m_pRecordset->PutCollect("Polity",_variant_t((short)m_polity));
       m_pRecordset->PutCollect("History",_variant_t((short)m_history));
       m_pRecordset->PutCollect("Geography",_variant_t((short)m_geography));
       m_pRecordset->PutCollect("Biology",_variant_t((short)m_biology));
       m_pRecordset->PutCollect("All_grade",_variant_t((short)m_all_grade));
       m_pRecordset->PutCollect("Avg_grade",_variant_t((float)m_avg_grade));
       m_pRecordset->Update();

       int nCurSel=m_list.GetSelectionMark();
	   
        ReadData();
        m_list.SetHotItem(nCurSel);
  //      UpdateData(false);

  //   nClickList(); 
    }
    catch(_com_error *e)
  {
         AfxMessageBox(e->ErrorMessage());
  }


	
}
////////////////////////////////////////////////
//函数:
//功能:删除数据
////////////////////////////////////////////////
void CMypreDlg::OnBTNdelete() 
{
	// TODO: Add your control notification handler code here


   if(m_list.GetItemCount()==0)
            return;
   else if(m_list.GetSelectionMark()<0||m_list.GetSelectionMark()>m_list.GetItemCount())
         m_list.SetSelectionMark(0);



   if(m_number==""||m_name==""||m_list.GetSelectedCount()<1)
   {
	   AfxMessageBox("请选择要删除的记录!");
	   return;
   }

  try
     {
          m_pRecordset->Delete(adAffectCurrent);
		 
          m_pRecordset->Update();
	

          int  nCurSel=m_list.GetSelectionMark();
               m_list.DeleteItem(nCurSel);
          if(nCurSel==0&&(m_list.GetItemCount()!=0))
                m_list.SetHotItem(nCurSel);
           else if(m_list.GetItemCount()!=0)
                m_list.SetHotItem(nCurSel-1);
       }
         catch(_com_error *e)
       {
         AfxMessageBox(e->ErrorMessage());
       }

    	   SetIndex();///////////////////////////////////////////   
	       ReadData();
}

///////////////////////////////////////////////////////////////////////////////
///函数:ReadData()
///功能:读出Access中的数据
///////////////////////////////////////////////////////////////////////////////

void CMypreDlg::ReadData()
{
        _variant_t var,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10,var11,var12,var13;
//		CString varStr="";

CString number="";
CString name="";
CString id="";
CString chinese,math,english,physics,chemistry,polity,history,geography,biology;
CString all_grade,avg_grade;

m_list.DeleteAllItems();

try
{
       if(!m_pRecordset->BOF)
               m_pRecordset->MoveFirst();
        else
         {
                AfxMessageBox("List is empty!");
                return;
          }

         while(!m_pRecordset->adoEOF)
       {          
            var = m_pRecordset->GetCollect("id");
                  if(var.vt!=VT_NULL)
                          id=(LPCSTR)_bstr_t(var);
            var1 = m_pRecordset->GetCollect("number");
                  if(var1.vt!=VT_NULL)
                          number=(LPCSTR)_bstr_t(var1);            
            var2 = m_pRecordset->GetCollect("name");
                  if(var2.vt!=VT_NULL)
                          name=(LPCSTR)_bstr_t(var2);
            var3 = m_pRecordset->GetCollect("chinese");
                  if(var3.vt!=VT_NULL)
                          chinese=(LPCSTR)_bstr_t(var3);          
            var4 = m_pRecordset->GetCollect("math");
                  if(var4.vt!=VT_NULL)
                          math=(LPCSTR)_bstr_t(var4);
            var5 = m_pRecordset->GetCollect("english");
                  if(var5.vt!=VT_NULL)
                          english=(LPCSTR)_bstr_t(var5);
            var6 = m_pRecordset->GetCollect("physics");
                  if(var6.vt!=VT_NULL)
                          physics=(LPCSTR)_bstr_t(var6);
            var7 = m_pRecordset->GetCollect("chemistry");
                  if(var7.vt!=VT_NULL)
                          chemistry=(LPCSTR)_bstr_t(var7);
            var8 = m_pRecordset->GetCollect("polity");
                  if(var8.vt!=VT_NULL)
                          polity=(LPCSTR)_bstr_t(var8);
            var9 = m_pRecordset->GetCollect("history");
                  if(var9.vt!=VT_NULL)
                          history=(LPCSTR)_bstr_t(var9);
            var10 = m_pRecordset->GetCollect("geography");
                  if(var10.vt!=VT_NULL)
                          geography=(LPCSTR)_bstr_t(var10);
            var11 = m_pRecordset->GetCollect("biology");
                  if(var11.vt!=VT_NULL)
                          biology=(LPCSTR)_bstr_t(var11);
            var12 = m_pRecordset->GetCollect("all_grade");
                  if(var12.vt!=VT_NULL)
                          all_grade=(LPCSTR)_bstr_t(var12);
            var13 = m_pRecordset->GetCollect("avg_grade");
                  if(var13.vt!=VT_NULL)
                          avg_grade=(LPCSTR)_bstr_t(var13);


       int nCount = m_list.GetItemCount();
       int nItem = m_list.InsertItem (nCount,_T(""));

       m_list.SetItemText (nItem,0,id);
       m_list.SetItemText (nItem,1,number);
       m_list.SetItemText (nItem,2,name);
       m_list.SetItemText (nItem,3,chinese);
       m_list.SetItemText (nItem,4,math);
       m_list.SetItemText (nItem,5,english);
       m_list.SetItemText (nItem,6,physics);
       m_list.SetItemText (nItem,7,chemistry);
       m_list.SetItemText (nItem,8,polity);
       m_list.SetItemText (nItem,9,history);
       m_list.SetItemText (nItem,10,geography);
       m_list.SetItemText (nItem,11,biology);
       m_list.SetItemText (nItem,12,all_grade);
       m_list.SetItemText (nItem,13,avg_grade);

       m_pRecordset->MoveNext();
      }
    // m_list.SetHotItem(0);
   }
  catch(_com_error *e)
      {
          AfxMessageBox(e->ErrorMessage());
      }
}

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
///函数:SelChangeListen()
///功能:光标选择
/////////////////////////////////////////////////////////////////////////////
//void CMypreDlg::SelChangeListen()
//{

//}

BOOL CMypreDlg::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	// 关闭记录集
	m_pRecordset->Close();
	m_pRecordset = NULL;
	
	return CDialog::DestroyWindow();
}

void CMypreDlg::OnItemclickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
	// TODO: Add your control notification handler code here


	*pResult = 0;
}

void CMypreDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here

//HCURSOR hCursor = ::LoadCursor(NULL, IDC_APPSTARTING);
//m_list.SetHotCursor(hCursor);


int curSel=m_list.GetSelectionMark();
  _variant_t var;
  CString varStr="";

  if(curSel<0)
          return;

   try
{
           m_pRecordset->MoveFirst();
           m_pRecordset->Move(long(curSel));

            var = m_pRecordset->GetCollect("Number");
                  if(var.vt!=VT_NULL)
                          m_number=(LPCSTR)_bstr_t(var);            
            var = m_pRecordset->GetCollect("Name");
                  if(var.vt!=VT_NULL)
                          m_name=(LPCSTR)_bstr_t(var);
            var = m_pRecordset->GetCollect("Chinese");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_chinese=atoi(varStr);}                
            var = m_pRecordset->GetCollect("Math");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_math=atoi(varStr);}  
            var = m_pRecordset->GetCollect("English");
                  if(var.vt!=VT_NULL)
 				  { varStr=(LPCSTR)_bstr_t(var);
				     m_english=atoi(varStr);}  
            var = m_pRecordset->GetCollect("Physics");
                  if(var.vt!=VT_NULL)
 				  { varStr=(LPCSTR)_bstr_t(var);
				     m_physics=atoi(varStr);}  
            var = m_pRecordset->GetCollect("Chemistry");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_chemistry=atoi(varStr);}  
            var = m_pRecordset->GetCollect("Polity");
                  if(var.vt!=VT_NULL)
 				  { varStr=(LPCSTR)_bstr_t(var);
				     m_polity=atoi(varStr);}  
            var = m_pRecordset->GetCollect("History");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_history=atoi(varStr);}  
            var = m_pRecordset->GetCollect("Geography");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_geography=atoi(varStr);}  
            var = m_pRecordset->GetCollect("Biology");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_biology=atoi(varStr);}  
            var = m_pRecordset->GetCollect("All_grade");
                  if(var.vt!=VT_NULL)
 				  { varStr=(LPCSTR)_bstr_t(var);
				     m_all_grade=atoi(varStr);}  
            var = m_pRecordset->GetCollect("Avg_grade");
                  if(var.vt!=VT_NULL)
				  { varStr=(LPCSTR)_bstr_t(var);
				     m_avg_grade=atof(varStr);}  

///				  SetIndex();///////////////////////
		UpdateData(false);
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	
	
	*pResult = 0;
}

//////////////////////////////////////////////////////////
//函数:
//功能:排序
//////////////////////////////////////////////////////////
void CMypreDlg::OnBTNsort() 
{
	// TODO: Add your control notification handler code her  
	CString Clum[]={"Geography","Chemistry","History","Biology","Math","Physics","English"
		,"Chinese","Polity","All_grade"};
 //  CString text="";
	    int nsel=m_combo.GetCurSel();
 //  m_combo.GetLBText( nsel , text);   
		if(nsel==CB_ERR)
		{  AfxMessageBox("请选择按那一科成绩排序!");
			return;
		}
        CString  text=Clum[nsel];
	CString SQLtext="SELECT * FROM StudentGrade ORDER BY "+text+" DESC";
 //UpdateData();
	try
	{      
			m_pRecordset.CreateInstance(__uuidof(Recordset));
         m_pRecordset->Open(_variant_t(SQLtext),                // 查询StudentGrade表中所有字段
							theApp.m_pConnection.GetInterfacePtr(),	 // 获取库接库的IDispatch指针
							adOpenDynamic,
							adLockOptimistic,
							adCmdText);

		 SetIndex();//////////////////////////////////////
	}
	catch(_com_error e)
	{ 
		CString  errormessage;      
           errormessage.Format("连接数据库失败!rn错误信息:%s",e.ErrorMessage());  
 
           AfxMessageBox(errormessage);  
         //  return  -1;  
	}

	  UpdateData(false);

     ReadData();
		
		//	 DWORD nCurSel=nsel+3;


//	m_list.SortItems((PFNLVCOMPARE)ComPareFun, nCurSel);
	
}

void CMypreDlg::OnSelchangeCombo() 
{
	// TODO: Add your control notification handler code here
	
}




void CMypreDlg::OnRADIOnumber() 
{
	// TODO: Add your control notification handler code here
	m_radio=0;
	 UpdateData(false);
	
}

void CMypreDlg::OnRADIOname() 
{
	// TODO: Add your control notification handler code here
	m_radio=1;
	 UpdateData(false);
	
}
///////////////////////////////////////////////////////////
//函数:
//功能:查找数据
///////////////////////////////////////////////////////////
void CMypreDlg::OnBTNquery() 
{
	// TODO: Add your control notification handler code here
	int i;
//	LVFINDINFO info;
//    info.flags = LVFI_PARTIAL|LVFI_STRING|LVFI_PARAM;

	  UpdateData();
	if(m_query=="")
	{
		AfxMessageBox("请输入要查找的数据!");
		return;
	}
	if(m_radio==0)
	{
 //       info.lParam=1;
		i=1;
	}
	else if(m_radio==1)
	{ 
//		info.lParam=2;
		i=2;
	}
          
//          info.psz = m_query;

	for(int n=0;n<=(m_list.GetItemCount());n++)
	{
       CString text=m_list.GetItemText(n,i);
	   if(strcmp(m_query,text)==0)
	   {
		   

//	if((n=m_list.FindItem(&info))!=-1)
//		{
            m_list.SetHotItem(n);
			return;
	   }
//		}
//		else
//		{
	   }
			AfxMessageBox("没找到你要查找的记录!");
			return;
	//	} 
			UpdateData(false);
	
	
}

void CMypreDlg::OnOK()
{

}

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

void CMypreDlg::OnBTNabout() 
{
	// TODO: Add your control notification handler code here
	    CAboutDlg dlgAbout;
		dlgAbout.DoModal();

	
}
//////////////////////////////////////////////////////////////
//函数:
//功能:对ID进行设置
//////////////////////////////////////////////////////////////
void CMypreDlg::SetIndex()
{
	//	m_pRecordset.CreateInstance(__uuidof(Recordset));
	UpdateData();
	int i=1;
	try{ 
		if(!m_pRecordset->BOF)
               m_pRecordset->MoveFirst();
        else
         {
                AfxMessageBox("List is empty!");
                return;
          }
		while(i<=m_list.GetItemCount())
		{
            m_pRecordset->PutCollect("ID",_variant_t((short)i));
			i++;
			m_pRecordset->MoveNext();
		}
	}
	catch(_com_error *e)
		{
		AfxMessageBox(e->ErrorMessage());
	}
 //    m_pRecordset->Update();

}

⌨️ 快捷键说明

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