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

📄 userdlg.cpp

📁 一个由MFC做的学生信息管理系统
💻 CPP
字号:
// UserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SSF.h"
#include "UserDlg.h"
#include"UserSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUserDlg dialog


CUserDlg::CUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUserDlg)
	m_strRePass = _T("");
	m_bIsAdmin = _T("");
	m_strUser = _T("");
	m_strPass = _T("");
	//}}AFX_DATA_INIT
}


void CUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUserDlg)
	DDX_Control(pDX, IDC_LIST2, m_ctrList);
	DDX_Text(pDX, IDC_code2, m_strRePass);
	DDX_CBString(pDX, IDC_COMBO2, m_bIsAdmin);
	DDX_Text(pDX, IDC_name, m_strUser);
	DDX_Text(pDX, IDC_code, m_strPass);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUserDlg, CDialog)
	//{{AFX_MSG_MAP(CUserDlg)
	ON_BN_CLICKED(IDC_add, Onadd)
	ON_BN_CLICKED(IDC_delete, Ondelete)
	ON_BN_CLICKED(IDC_save, Onsave)
	ON_BN_CLICKED(IDC_cancel, Oncancel)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUserDlg message handlers

void CUserDlg::Onadd() 
{
	// TODO: Add your control notification handler code here
	m_strUser="";
	m_strPass="";
	m_strRePass="";
	m_bIsAdmin="";
	UpdateData(FALSE);
}

void CUserDlg::Ondelete() 
{
	// TODO: Add your control notification handler code here
	CUserSet m_recordset;
	// TODO: Add your control notification handler code here
	int i=m_ctrList.GetSelectionMark();
	if(0>i)
	{
		MessageBox("请选择一条记录进行修改");
		return;
	}
   CString  strSQL;
   strSQL.Format("select * from user where user='%s'",m_ctrList.GetItemText(i,1));
   if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return;
	}
   m_recordset.Delete();
   m_recordset.Close();
   m_ctrList.DeleteItem(i);
   	m_strUser="";
	m_strPass="";
	m_strRePass="";
	m_bIsAdmin="";
	UpdateData(FALSE);
	
}

void CUserDlg::Onsave() 
{   CUserSet m_recordset;
	// TODO: Add your control notification handler code here
	UpdateData();
	if(m_strUser=="")
	{
		MessageBox("请填写用户名");
		return;
	}
	if(m_bIsAdmin=="")
	{
		MessageBox("请选择用户类型");
		return;
	}
    if(m_strPass=="")
	{
		MessageBox("密码不能为空,请输入密码");
		return;
	}
	if(m_strPass!=m_strRePass)
	{
		MessageBox("两次输入的密码不一致,请重新输入密码!");
		m_strPass="";
		m_strRePass="";
		UpdateData(FALSE);
		return;
	}
	CString strSQL;
	strSQL.Format("select * from user where user='%s'",m_strUser);
	if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return;
	}
	if(m_recordset.GetRecordCount()!=0)
	{
		m_recordset.Close();
		MessageBox("该用户已经存在!");
	    UpdateData(FALSE);
	}
	else{
	m_recordset.AddNew();
	m_recordset.m_user=m_strUser;
	m_recordset.m_passwd=m_strPass;
	m_recordset.m_type=m_bIsAdmin;
	m_recordset.Update();
	MessageBox("用户添加成功!请记住用户名和密码!");
	m_recordset.Close();
    m_ctrList.InsertItem(0,m_bIsAdmin);
	m_ctrList.SetItemText(0,1,m_strUser);
    m_strUser="";
    m_bIsAdmin="";
    UpdateData(FALSE);
	}
}	

void CUserDlg::Oncancel() 
{
	// TODO: Add your control notification handler code here
	m_strUser="";
	m_strPass="";
	m_strRePass="";
	m_bIsAdmin="";
    UpdateData(FALSE);
}

BOOL CUserDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_ctrList.InsertColumn(0,"用户类型");
    m_ctrList.InsertColumn(1,"用户名");

    m_ctrList.SetColumnWidth(0,100);
    m_ctrList.SetColumnWidth(1,100);

	m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUserDlg::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	CUserSet m_recordset;
	// TODO: Add your control notification handler code here
	CString strSQL;
	UpdateData(TRUE);
	int i=m_ctrList.GetSelectionMark();
    strSQL.Format("select * from user where user='%s'",m_ctrList.GetItemText(i,1));
   if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败!","数据库错误",MB_OK);
		return;
	}
	m_strUser=m_recordset.m_user;
	m_strPass=m_recordset.m_passwd;
    m_bIsAdmin=m_recordset.m_type;
	m_recordset.Close();
	UpdateData(FALSE);
	*pResult = 0;
}

⌨️ 快捷键说明

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