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

📄 sltdlg.cpp

📁 中学学生信息管理系统 选定的课程及课程安排 学号等
💻 CPP
字号:
// SltDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "Student.h"
#include "SltDlg.h"
#include ".\sltdlg.h"


// CSltDlg 对话框

IMPLEMENT_DYNAMIC(CSltDlg, CDialog)
CSltDlg::CSltDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSltDlg::IDD, pParent)
	, m_Keyword(_T(""))
{
}

CSltDlg::~CSltDlg()
{
}

void CSltDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);


	DDX_Control(pDX, IDC_LIST1, m_ListInfo);
	DDX_Text(pDX, IDC_EDIT_KEYWORD, m_Keyword);
	
}


BEGIN_MESSAGE_MAP(CSltDlg, CDialog)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	
END_MESSAGE_MAP()


// CSltDlg 消息处理程序

void CSltDlg::OnBnClickedCancel()
{
	OnCancel();
}

void CSltDlg::OnBnClickedOk()
{
	if( UpdateData() == false )
		return;
	//指向Connection对象的指针,用于连接到数据库
	_ConnectionPtr m_pConnection;
	//Recordset 指针, 记录集指针
	_RecordsetPtr m_pRecordset;

	try
	{
		HRESULT hr;

		// 创建Connection对象
		hr = m_pConnection.CreateInstance("ADODB.Connection");
		if( SUCCEEDED( hr ) )
		{
			// 连接数据库
			hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=student.mdb",
				"","",adModeUnknown);
		}
		else
		{
			return ;
		}
	}
	catch( ... )
	{
		MessageBox( "连接数据库失败,请确定数据库 student.mdb 是否在当前路径下");
	}

	try
	{
		// 生成Recordset实例
		m_pRecordset.CreateInstance("ADODB.Recordset");

		// 察看全部
		int iWhichRadioButton;
		
		iWhichRadioButton = GetCheckedRadioButton(IDC_RADIO_NAME,IDC_RADIO_NUM);

		if (iWhichRadioButton=IDC_RADIO_NAME)
		{ 

			if( m_Keyword == "" )
			{
				m_pRecordset->Open("SELECT * FROM student",   // 查询所有语句
					_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
			}
			else
			{
				CString temp;
				temp.Format("SELECT * FROM student WHERE (NAME LIKE '%%%s%%')",m_Keyword);
				m_pRecordset->Open( temp.GetBuffer(),
					_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
			}
		}
		else if (iWhichRadioButton=IDC_RADIO_NUM)
		{
			if( m_Keyword == "" )
			{
				m_pRecordset->Open("SELECT NUM FROM student",   // 查询所有语句
					_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
			}
			else
			{
				CString temp;
				temp.Format("SELECT NUM FROM student WHERE (NUM LIKE '%%%s%%')",m_Keyword);
				m_pRecordset->Open( temp.GetBuffer(),
					_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
			}
		}
	
	}
	catch( _com_error * e )
	{
		m_pConnection->Close();
		MessageBox( e->ErrorMessage() );
	}

	_variant_t value;
	COleDateTime time;
	CString name, sex, num, classnum;
	int age;

	try
	{
		m_ListInfo.DeleteAllItems();

		int index = 0;
		while( !m_pRecordset->adoEOF )
		{
			// 姓名
			value = m_pRecordset->GetCollect( "NAME" );
			if( value.vt != VT_NULL )
				name = value.bstrVal;
			else
				name = "";

			// 性别
			value = m_pRecordset->GetCollect( "SEX" );
			if( value.vt != VT_NULL )
				sex = value.bstrVal;
			else
				sex = "未知";

			// 学号
			value = m_pRecordset->GetCollect( "NUM" );
			if( value.vt != VT_NULL )
				num = value.bstrVal;
			else
				num = "";

			// 班级
			value = m_pRecordset->GetCollect( "CLASS" );
			if( value.vt != VT_NULL )
				classnum = value.bstrVal;
			else
				classnum = "";

			// 年龄
			value = m_pRecordset->GetCollect( "AGE" );
			if( value.vt != VT_NULL )
				age = (int)value.llVal;
			else
				age = 0;

			// 生日
			value = m_pRecordset->GetCollect( "Birthday" );
			if( value.vt != VT_NULL )
				time = value.date;
			else
				time.SetDate(2000,1,1);

			// 把数据加入列表框
			m_ListInfo.InsertItem( index, name, 0 );
			m_ListInfo.SetItemText( index, 1, sex);
			m_ListInfo.SetItemText( index, 2, num);
			m_ListInfo.SetItemText( index, 3, classnum);
			CString temp;
			temp.Format( "%d", age );
			m_ListInfo.SetItemText( index, 4, temp );
			m_ListInfo.SetItemText( index, 5, time.Format() );
			index++;

			m_pRecordset->MoveNext();
		}
	}
	catch( _com_error * e )
	{
		MessageBox( e->ErrorMessage() );
	}

	try
	{
		m_pRecordset->Close();
		m_pConnection->Close();
	}
	catch( _com_error * e )
	{
		MessageBox( e->ErrorMessage() );
	}
}

BOOL CSltDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	// 初始化信息框
	m_ListInfo.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP );
	m_ListInfo.InsertColumn(0,"姓名",LVCFMT_LEFT,100);
	m_ListInfo.InsertColumn(1,"性别",LVCFMT_LEFT,50);
	m_ListInfo.InsertColumn(2,"学号",LVCFMT_LEFT,100);
	m_ListInfo.InsertColumn(3,"班级",LVCFMT_LEFT,100);
	m_ListInfo.InsertColumn(4,"年龄",LVCFMT_LEFT,50);
	m_ListInfo.InsertColumn(5,"生日",LVCFMT_LEFT,100);


	//初始化单选矿
	CheckRadioButton(IDC_RADIO_NAME,IDC_RADIO_NUM,IDC_RADIO_NAME);
	UpdateData(FALSE);

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}


⌨️ 快捷键说明

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