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

📄 adminquerystudentinfdlg.cpp

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

#include "stdafx.h"
#include "学生成绩管理系统.h"
//以下是手工添加的
#include "StudentRS.h"
#include "Public.h"
//以上是手工添加的
#include "AdminQueryStudentInfDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAdminQueryStudentInfDlg dialog


CAdminQueryStudentInfDlg::CAdminQueryStudentInfDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAdminQueryStudentInfDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdminQueryStudentInfDlg)
	m_andOr = _T("");
	m_condition1 = _T("");
	m_condition2 = _T("");
	m_keyWord1 = _T("");
	m_keyWord2 = _T("");
	//}}AFX_DATA_INIT
}


void CAdminQueryStudentInfDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdminQueryStudentInfDlg)
	DDX_Control(pDX, IDC_QUERY_STUDENT_INF_RESULT, m_queryStudentInfResult);
	DDX_Control(pDX, IDC_QUERY_STUDENT_INF_RESULT_INDEX, m_queryStudentInfResultIndex);
	DDX_CBString(pDX, IDC_AND_OR, m_andOr);
	DDX_CBString(pDX, IDC_CONDITION1, m_condition1);
	DDX_CBString(pDX, IDC_CONDITION2, m_condition2);
	DDX_Text(pDX, IDC_KEYWORD1, m_keyWord1);
	DDX_Text(pDX, IDC_KEYWORD2, m_keyWord2);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdminQueryStudentInfDlg, CDialog)
	//{{AFX_MSG_MAP(CAdminQueryStudentInfDlg)
	ON_LBN_SELCHANGE(IDC_QUERY_STUDENT_INF_RESULT_INDEX, OnSelchangeListResult)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdminQueryStudentInfDlg message handlers

void CAdminQueryStudentInfDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
	m_queryStudentInfResultIndex.ResetContent();
	m_queryStudentInfResult.ResetContent();
	if (!m_studentSet.IsOpen())
	{
		m_studentSet.Open();
	}
	CString strFilter;

	CString astrColumnCaption[3];//列名
	CString *astrColumVal[3];//指向CString的指针数组,记录用户选择的查询条件

	astrColumVal[1]=&m_condition1;
	astrColumVal[2]=&m_condition2;

	for(int i=1;i<3;i++)
	{
		if(!astrColumVal[i]->Compare("学号")){
			astrColumnCaption[i]="ID";
			continue;
		}
		else if (!astrColumVal[i]->Compare("姓名")){
			astrColumnCaption[i]="name";
			continue;
		}
		else if(!astrColumVal[i]->Compare("年龄")){
			astrColumnCaption[i]="age";
			continue;
		}
		else if(!astrColumVal[i]->Compare("年级")){
			astrColumnCaption[i]="grade";
			continue;
		}	
		else if(!astrColumVal[i]->Compare("学院")){
			astrColumnCaption[i]="college";
		    continue;
		}
		else
			continue;	
	}

	CString equal("=");
	CString space(" ");
	int flag=0;
	if (m_condition1!=""&&m_keyWord1!=""&&m_andOr!=""&&m_condition2!=""&&m_keyWord2!="")
		//当两个条件都成立时,并且有两个条件的关系时,按照两个条件查询
	{
		strFilter.Empty();
		strFilter+=astrColumnCaption[1];
		strFilter+=equal;
		strFilter+="'";
		strFilter+=m_keyWord1;
		strFilter+="'";
		strFilter+=space;
		strFilter+=m_andOr;
		strFilter+=space;
		strFilter+=astrColumnCaption[2];
		strFilter+=equal;
		strFilter+="'";
		strFilter+=m_keyWord2;
		strFilter+="'";
	}
	else if(m_condition1!=""&&m_keyWord1!=""&&(m_condition2==""||m_andOr==""||m_keyWord2==""))
	   //当第一个条件成立,并且第二个条件不成立时,按照第一个条件查询
	{
		strFilter.Empty();
		strFilter+=astrColumnCaption[1];
		strFilter+=equal;
		strFilter+="'";
		strFilter+=m_keyWord1;
		strFilter+="'";
	}
	else if ((m_condition1==""||m_keyWord1==""||m_andOr=="")&&m_condition2!=""&&m_keyWord2!="")
		//当第二个条件成立时,并且第一个条件不成立时,按照第二个条件查询
	{
			strFilter.Empty();
			strFilter+=astrColumnCaption[2];
			strFilter+=equal;
			strFilter+="'";
			strFilter+=m_keyWord2;
			strFilter+="'";
	}
	else if (m_condition1!=""&&m_keyWord1!=""&&m_condition2!=""&&m_keyWord2!=""&&m_andOr=="")
		//当第一个、第二个条件都有时,但只缺少两个条件之间的关系时,给出的提示
	{
		flag=1;
		AfxMessageBox("请输入连接关系后再查询!");
	}
	else
	{
		flag=1;
		AfxMessageBox("请输入必要的信息!");
	}

	m_studentSet.m_strFilter=strFilter;
	m_studentSet.Requery();
	if (m_studentSet.IsEOF())	
	{
		AfxMessageBox("没有查到!");
	}
	while (!m_studentSet.IsEOF()&&flag==0)
	{
		CString temp("学号:");
		CString table(";姓名:");	
		temp+=m_studentSet.m_ID;
		temp+=table;
		temp+=m_studentSet.m_name;	
		m_queryStudentInfResultIndex.AddString(temp);
		m_studentSet.MoveNext();
	}

}

void CAdminQueryStudentInfDlg::OnSelchangeListResult() 
{
	// TODO: Add your control notification handler code here
	CString  aColCaption[7];
	aColCaption[0]="学号:  ";
	aColCaption[1]="姓名:  ";
	aColCaption[2]="密码:  ";
	aColCaption[3]="类别:  ";
	aColCaption[4]="年龄:  ";
	aColCaption[5]="学院:  ";
	aColCaption[6]="年级:  ";
	
	m_queryStudentInfResult.ResetContent();//清空查询的结果的列表中的原有内容
	int curSel;//记录集中的当前位置
	CString strDetail;//内容
	CString  strLine;//列表中的一行,行=标题:+内容
	curSel=	m_queryStudentInfResultIndex.GetCurSel();//取得结果列表中当前的选中位置
	m_studentSet.SetAbsolutePosition(curSel+1);	//将记录集指针移到该位置
	for (int i=0;i<m_studentSet.m_nFields;i++){
		m_studentSet.GetFieldValue(i,strDetail);//从记录集中取出第i列的值,存在strDetail中
		strLine.Empty();// 清空原有的内容
		strLine+=aColCaption[i];//增加标题
		strLine+=strDetail;//增加内容
		m_queryStudentInfResult.AddString(strLine);//把该行添加到书目详细信息的列表中		
	}	
}

⌨️ 快捷键说明

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