studentinfoview.cpp
来自「学生信息管理系统」· C++ 代码 · 共 335 行
CPP
335 行
// StudentInfoView.cpp : implementation of the CStudentInfoView class
//
#include "stdafx.h"
#include "StudentInfo.h"
#include "MainFrm.h"
#include "StudentInfoView.h"
#include "ModifyPassDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CStudentInfoView
IMPLEMENT_DYNCREATE(CStudentInfoView, CFormView)
BEGIN_MESSAGE_MAP(CStudentInfoView, CFormView)
//{{AFX_MSG_MAP(CStudentInfoView)
ON_WM_DESTROY()
ON_WM_CREATE()
ON_WM_PAINT()
ON_BN_CLICKED(IDC_REFRESH, OnRefresh)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_MODIFY, OnModify)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStudentInfoView construction/destruction
CStudentInfoView::CStudentInfoView()
: CFormView(CStudentInfoView::IDD)
{
//{{AFX_DATA_INIT(CStudentInfoView)
m_eStudentID = _T("");
m_eStudentName = _T("");
//}}AFX_DATA_INIT
// TODO: add construction code here
m_bFirstTime = FALSE;
m_bExist = FALSE;
m_pResult.CreateInstance(__uuidof(Recordset));
}
CStudentInfoView::~CStudentInfoView()
{
}
void CStudentInfoView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CStudentInfoView)
DDX_Control(pDX, IDC_COMBO1, m_ComSex);
DDX_Control(pDX, IDC_LSTINFO, m_listInfo);
DDX_Text(pDX, IDC_ESTUDENTID, m_eStudentID);
DDX_Text(pDX, IDC_ESTUDENTNAME, m_eStudentName);
//}}AFX_DATA_MAP
}
BOOL CStudentInfoView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CStudentInfoView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CStudentInfoView printing
BOOL CStudentInfoView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CStudentInfoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CStudentInfoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CStudentInfoView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
}
/////////////////////////////////////////////////////////////////////////////
// CStudentInfoView diagnostics
#ifdef _DEBUG
void CStudentInfoView::AssertValid() const
{
CFormView::AssertValid();
}
void CStudentInfoView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CStudentInfoDoc* CStudentInfoView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CStudentInfoDoc)));
return (CStudentInfoDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CStudentInfoView message handlers
void CStudentInfoView::OnDestroy()
{
CFormView::OnDestroy();
((CMainFrame*)AfxGetMainWnd())->m_pStudentInfo=NULL;
delete ((CMainFrame*)AfxGetMainWnd())->m_pStudentInfo;
}
int CStudentInfoView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}
void CStudentInfoView::OnPaint()
{
CPaintDC dc(this); // device context for painting
if(!m_bFirstTime)
{
if(!m_bExist)
{
m_listInfo.InsertColumn(0,_T("学生ID"),LVCFMT_LEFT);
m_listInfo.InsertColumn(1,_T("学生名"),LVCFMT_LEFT);
m_listInfo.InsertColumn(2,_T("性别"), LVCFMT_LEFT);
for(int i = 0;i < 3;i++)
{
m_listInfo.SetColumnWidth(i,150);
}
m_ComSex.AddString("男");
m_ComSex.AddString("女");
m_bExist = TRUE;
}
int i = 0;
_variant_t var;
CString strMsg, strStudentID, strStudentName, strSex;
strMsg = "SELECT * FROM student";
m_pResult = m_pConn.GetRS(strMsg);
m_pResult->MoveFirst();
while(!m_pResult->adoEOF)
{
char buff[10];
int nItem = m_listInfo.InsertItem(LVIF_TEXT|LVIF_STATE,i,itoa(i,buff,10),LVIS_SELECTED,
LVIS_SELECTED,0,0);
var = m_pResult->GetCollect("studentID");
if(var.vt != VT_NULL)
{
strStudentID = (LPCSTR)_bstr_t(var);
m_listInfo.SetItemText(nItem,0,strStudentID);
}
var = m_pResult->GetCollect("studentName");
if(var.vt != VT_NULL)
{
strStudentName = (LPCSTR)_bstr_t(var);
m_listInfo.SetItemText(nItem,1,strStudentName);
}
var = m_pResult->GetCollect("studentSex");
if(var.vt != VT_NULL)
{
strSex = (LPCSTR)_bstr_t(var);
if(strSex == "1")
{
m_listInfo.SetItemText(nItem,2,"男");
}
else
{
m_listInfo.SetItemText(nItem,2,"女");
}
}
i++;
m_pResult->MoveNext();
}
m_bFirstTime = TRUE;
}
}
void CStudentInfoView::OnRefresh()
{
m_listInfo.DeleteAllItems();
m_bFirstTime = FALSE;
Invalidate();
}
void CStudentInfoView::OnAdd()
{
UpdateData(TRUE);
CString strMsg;
strMsg = "SELECT * FROM student WHERE studentID = " + m_eStudentID;
m_pResult = m_pConn.GetRS(strMsg);
if(m_pResult->adoEOF)
{
CString strInfo;
if(m_ComSex.GetCurSel() == 0)
{
strInfo = "1";
}
else
{
strInfo = "0";
}
strMsg = "INSERT INTO student VALUES(" + m_eStudentID + ",'" + m_eStudentName + "'," +
strInfo + ",'')";
if(m_pConn.Execute(strMsg))
{
AfxMessageBox("数据插入成功!");
OnRefresh();
if(MessageBox("用户还为设密码,是否设置!","人事管理系统",MB_YESNO|MB_ICONQUESTION)== IDYES)
{
CModifyPassDlg dlg;
dlg.m_eUserName = m_eStudentName;
dlg.m_strStuID = m_eStudentID;
dlg.DoModal();
}
}
else
{
AfxMessageBox("数据插入失败!");
}
}
else
{
AfxMessageBox("你输入的ID号以存在,你重新输入新的ID号!");
}
}
void CStudentInfoView::OnModify()
{
UpdateData(TRUE);
CString strMsg;
strMsg = "SELECT * FROM student WHERE studentID = " + m_eStudentID;
m_pResult = m_pConn.GetRS(strMsg);
if(!m_pResult->adoEOF)
{
CString strInfo;
if(m_ComSex.GetCurSel() == 0)
{
strInfo = "1";
}
else
{
strInfo = "0";
}
strMsg = "UPDATE student SET student.studentName = '" + m_eStudentName + "',student.studentSex = " +
strInfo + " WHERE student.studentID = " + m_eStudentID;
if(m_pConn.Execute(strMsg))
{
AfxMessageBox("数据修改成功!");
OnRefresh();
}
else
{
AfxMessageBox("数据修改失败!");
}
}
else
{
AfxMessageBox("你输入的ID号不存在,你重新输入新的ID号!");
}
}
void CStudentInfoView::OnDelete()
{
UpdateData(TRUE);
CString strMsg;
if(MessageBox("你要删除该条记录吗?","人事管理系统",MB_YESNO|MB_ICONQUESTION) == IDYES)
{
strMsg = "SELECT * FROM student WHERE studentID = " + m_eStudentID;
m_pResult = m_pConn.GetRS(strMsg);
if(!m_pResult->adoEOF)
{
strMsg = "DELETE FROM student WHERE student.studentID = " + m_eStudentID;
if(m_pConn.Execute(strMsg))
{
AfxMessageBox("数据删除成功!");
OnRefresh();
}
else
{
AfxMessageBox("数据删除失败!");
}
}
else
{
AfxMessageBox("你输入的ID号不存在,你重新输入新的ID号!");
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?