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

📄 userdlg.cpp

📁 研究生信息管理系统 基于VC++6.0 MFC 内附ACCESS数据库文件 一个完成工程文件 编译通过后可直接运行 (需装有SP5以上补丁)
💻 CPP
字号:
// USERDLG.cpp : implementation file
//

#include "stdafx.h"
#include "YJSYS_HD.h"
#include "USERDLG.h"
#include "Columns.h"
#include "Column.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUSERDLG dialog
extern CYJSYS_HDApp theApp;

CUSERDLG::CUSERDLG(CWnd* pParent /*=NULL*/)
	: CDialog(CUSERDLG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUSERDLG)
	m_strUserLevel = _T("");
	m_strUserName = _T("");
	m_strUserPWD = _T("");
	m_strUserQPWD = _T("");
	//}}AFX_DATA_INIT
}


void CUSERDLG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUSERDLG)
	DDX_CBString(pDX, IDC_USERCOMBO_USERLEVEL, m_strUserLevel);
	DDX_Text(pDX, IDC_USEREDIT_USERNAME, m_strUserName);
	DDX_Text(pDX, IDC_USEREDIT_USERPWD, m_strUserPWD);
	DDX_Text(pDX, IDC_USEREDIT_USERQPWD, m_strUserQPWD);
	DDX_Control(pDX, IDC_DATAGRID_USER, m_dgUserList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUSERDLG, CDialog)
	//{{AFX_MSG_MAP(CUSERDLG)
	ON_BN_CLICKED(IDC_USERBTN_ADD, OnUserbtnAdd)
	ON_BN_CLICKED(IDC_USERBTN_DEL, OnUserbtnDel)
	ON_BN_CLICKED(IDC_USERBTN_SAVE, OnUserbtnSave)
	ON_BN_CLICKED(IDC_USERBTN_CANCEL, OnUserbtnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUSERDLG message handlers
BOOL CUSERDLG::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_pRecordset_User.CreateInstance("ADODB.Recordset");//打开用户信息基本表
	m_pRecordset_User->Open("select * from USER_LOGIN",_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText); 

	m_dgUserList.SetRefDataSource(NULL);
	m_dgUserList.SetRefDataSource((LPUNKNOWN)m_pRecordset_User);
	m_dgUserList.SetColumnHeaders(2) ;

	_variant_t var;
	var = long(0);
	m_dgUserList.GetColumns().GetItem(var).SetCaption("用户名N");
	m_dgUserList.GetColumns().GetItem(var).SetWidth(85);
	var = long(1);
	m_dgUserList.GetColumns().GetItem(var).SetCaption("密码P");
	m_dgUserList.GetColumns().GetItem(var).SetWidth(85);
	var = long(2);
	m_dgUserList.GetColumns().GetItem(var).SetCaption("级别L");//getitem()返回的是COL类型
	m_dgUserList.GetColumns().GetItem(var).SetWidth(70);	
	m_dgUserList.Refresh();

	GetDlgItem(IDC_USEREDIT_USERNAME)->EnableWindow(false);
	GetDlgItem(IDC_USEREDIT_USERPWD)->EnableWindow(false);
	GetDlgItem(IDC_USEREDIT_USERQPWD)->EnableWindow(false);
	GetDlgItem(IDC_USERCOMBO_USERLEVEL)->EnableWindow(false);
	((CComboBox*)GetDlgItem(IDC_USERCOMBO_USERLEVEL))->AddString("管理员");
	((CComboBox*)GetDlgItem(IDC_USERCOMBO_USERLEVEL))->AddString("老师");
	((CComboBox*)GetDlgItem(IDC_USERCOMBO_USERLEVEL))->AddString("研究生");

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUSERDLG::OnUserbtnAdd() 
{
	// TODO: Add your control notification handler code here
	GetDlgItem(IDC_USEREDIT_USERNAME)->EnableWindow(true);
	GetDlgItem(IDC_USEREDIT_USERPWD)->EnableWindow(true);
	GetDlgItem(IDC_USEREDIT_USERQPWD)->EnableWindow(true);
	GetDlgItem(IDC_USERCOMBO_USERLEVEL)->EnableWindow(true);
	GetDlgItem(IDC_USEREDIT_USERNAME)->SetFocus();

}

void CUSERDLG::OnUserbtnDel() 
{
	// TODO: Add your control notification handler code here
	CString str1,sql,str2;
	str1=m_dgUserList.GetText();//为当前选的列域值
	if(AfxMessageBox("确定删除用户"+str1+"吗?",MB_YESNO)==IDYES)
	{
		sql.Format("select * from USER_LOGIN");
		m_pRecordset_User.CreateInstance("ADODB.Recordset");
		m_pRecordset_User->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);      
        while(!m_pRecordset_User->rsEOF)
		{   
			str2=m_pRecordset_User->GetCollect("USER_ID").bstrVal;
			if(str2.CompareNoCase(str1) == 0)
			m_pRecordset_User->Delete(adAffectCurrent);
		    m_pRecordset_User->MoveNext();		
		}
		m_dgUserList.SetRefDataSource(NULL);
	    m_dgUserList.SetRefDataSource((LPUNKNOWN)m_pRecordset_User);
		m_dgUserList.Refresh();
		UpdateData(false);
	}
	else
		return;
}

void CUSERDLG::OnUserbtnSave() 
{
	// TODO: Add your control notification handler code here
	CString sql,str;
	int level;
	UpdateData(true);
	if(""==m_strUserName)//------判断用户信息是否填写完整
	{
		MessageBox("请填写用户名");
		return;
	
	}
	if(""==m_strUserPWD)
	{
		MessageBox("请填写用户密码");
		return;
	}
	if(""==m_strUserQPWD)
	{
		MessageBox("请确认用户密码");
		return;
	}
	if(""==m_strUserLevel)
	{
		MessageBox("请选择用户级别");
		return;
	}

	sql.Format("select * from USER_LOGIN WHERE USER_ID='%s'",m_strUserName);
	m_pRecordset_User.CreateInstance("ADODB.Recordset");
	m_pRecordset_User->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
	if(m_pRecordset_User->GetRecordCount()!=0)//---判断注册用户是否已存在
	{
		MessageBox("用户名已存在!");
		GetDlgItem(IDC_USEREDIT_USERNAME)->SetFocus();
		return;
	}
	else
	{
		sql.Format("select * from USER_LOGIN");
		m_pRecordset_User.CreateInstance("ADODB.Recordset");
		m_pRecordset_User->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pconnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
		
		m_pRecordset_User->AddNew();//记录集增加一条记录
		m_pRecordset_User->PutCollect("USER_ID",(_variant_t)m_strUserName);
		m_pRecordset_User->PutCollect("USER_PASSWORD",(_variant_t)m_strUserPWD);
		if(m_strUserLevel.CompareNoCase("研究生")==0)
			level = 0;
		else if(m_strUserLevel.CompareNoCase("老师")==0)
			level = 1;
		else if(m_strUserLevel.CompareNoCase("管理员")==0)
			level = 2;
		else
			return;
		str.Format("%d",level);
		m_pRecordset_User->PutCollect("USER_LEVEL",(_variant_t)str);
		m_pRecordset_User->Update();//-----------------

		m_dgUserList.SetRefDataSource(NULL);
		m_dgUserList.SetRefDataSource((LPUNKNOWN)m_pRecordset_User);
		m_dgUserList.SetColumnHeaders(2) ;
		_variant_t var;
		var = long(0);
		m_dgUserList.GetColumns().GetItem(var).SetCaption("用户名N");
		m_dgUserList.GetColumns().GetItem(var).SetWidth(60);
		var = long(1);
		m_dgUserList.GetColumns().GetItem(var).SetCaption("密码P");
		m_dgUserList.GetColumns().GetItem(var).SetWidth(60);
		var = long(2);
		m_dgUserList.GetColumns().GetItem(var).SetCaption("级别L");//getitem()返回的是COL类型
		m_dgUserList.GetColumns().GetItem(var).SetWidth(60);
		m_dgUserList.Refresh();
		m_strUserName="";
		m_strUserPWD="";
		m_strUserQPWD="";
		m_strUserLevel="";
		UpdateData(false);
	}
}

void CUSERDLG::OnUserbtnCancel() 
{
	// TODO: Add your control notification handler code here
	m_strUserName="";	
	m_strUserPWD="";
	m_strUserQPWD="";
	m_strUserLevel="";
	UpdateData(false);
	GetDlgItem(IDC_USEREDIT_USERNAME)->EnableWindow(false);
	GetDlgItem(IDC_USEREDIT_USERPWD)->EnableWindow(false);
	GetDlgItem(IDC_USEREDIT_USERQPWD)->EnableWindow(false);
	GetDlgItem(IDC_USERCOMBO_USERLEVEL)->EnableWindow(false);
	
}

⌨️ 快捷键说明

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