📄 userdlg.cpp
字号:
// UserDlg.cpp : implementation file
//
#include "stdafx.h"
#include "StuManage.h"
#include "UserDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUserDlg dialog
extern CStuManageApp theApp;
CUserDlg::CUserDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUserDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CUserDlg)
m_strUserType = _T("");
m_strUserName = _T("");
m_strUserPwd = _T("");
//}}AFX_DATA_INIT
}
void CUserDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUserDlg)
DDX_CBString(pDX, IDC_COMBO_USER, m_strUserType);
DDX_Control(pDX, IDC_DATAGRID_USER, m_dgUser);
DDX_Text(pDX, IDC_EDIT_USER_NAME, m_strUserName);
DDX_Text(pDX, IDC_EDIT_USER_PWD, m_strUserPwd);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUserDlg, CDialog)
//{{AFX_MSG_MAP(CUserDlg)
ON_BN_CLICKED(IDC_ADD_USER_BTN, OnAddUserBtn)
ON_BN_CLICKED(IDC_MODIFY_USER_BTN, OnModifyUserBtn)
ON_BN_CLICKED(IDC_DEL_USER_BTN, OnDelUserBtn)
ON_BN_CLICKED(IDC_EXECUTE_USER_BTN, OnExecuteUserBtn)
ON_BN_CLICKED(IDC_LOOKFOR_USER_BTN, OnLookforUserBtn)
ON_EN_CHANGE(IDC_EDIT_USER_NAME, OnChangeEditUserName)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUserDlg message handlers
void CUserDlg::OnAddUserBtn()
{
// TODO: Add your control notification handler code here
if(theApp.m_Level != 2)
{
AfxMessageBox("您无权添加用户");
return;
}
m_strUserType = "";
m_strUserName = "";
m_strUserPwd = "";
AfxMessageBox("请输入新的用户信息");
action = 1;
UpdateData(FALSE);
}
void CUserDlg::OnModifyUserBtn()
{
// TODO: Add your control notification handler code here
if(theApp.m_Level != 2)
{
AfxMessageBox("您无权修改用户权限");
return;
}
if(AfxMessageBox("确定修改此用户信息吗?",MB_YESNO)==IDYES)
action = 2;
}
void CUserDlg::OnDelUserBtn()
{
// TODO: Add your control notification handler code here
if(theApp.m_Level != 2)
{
AfxMessageBox("您无权删除用户");
return;
}
if(AfxMessageBox("确定删除此用户吗?",MB_YESNO)==IDYES)
action = 3;
}
void CUserDlg::OnExecuteUserBtn()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString sql,str,name;
int level;
sql = "select * from SysUser ";
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
switch(action)
{
case 1:
m_pRecordset->AddNew();
//用户名
m_pRecordset->PutCollect("NAME",(_variant_t)m_strUserName);
//密码
m_pRecordset->PutCollect("PASSWORD",(_variant_t)m_strUserPwd);
//类型
if(m_strUserType.CompareNoCase("学生")==0)
level = 0;
else if(m_strUserType.CompareNoCase("教师")==0)
level = 1;
else if(m_strUserType.CompareNoCase("管理员")==0)
level = 2;
else
return;
str.Format("%d",level);
m_pRecordset->PutCollect("LEVEL",(_variant_t)str);
m_pRecordset->Update();
break;
case 2:
if(m_pRecordset->GetRecordCount()!=0)
{
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
name=m_pRecordset->GetCollect("NAME").bstrVal;
if(name.CompareNoCase(m_strUserName) == 0)
{
//密码
m_pRecordset->PutCollect("PASSWORD",(_variant_t)m_strUserPwd);
//类型
if(m_strUserType.CompareNoCase("学生")==0)
level = 0;
else if(m_strUserType.CompareNoCase("教师")==0)
level = 1;
else if(m_strUserType.CompareNoCase("管理员")==0)
level = 2;
else
return;
str.Format("%d",level);
m_pRecordset->PutCollect("LEVEL",(_variant_t)str);
}
m_pRecordset->MoveNext();
}
}
break;
case 3:
if(m_pRecordset->GetRecordCount()!=0)
{
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
name=m_pRecordset->GetCollect("NAME").bstrVal;
if(name.CompareNoCase(m_strUserName) == 0)
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->MoveNext();
}
}
break;
default:
break;
}
m_pRecordset->Close();
UpdateData(FALSE);
action = 0;
}
void CUserDlg::OnLookforUserBtn()
{
// TODO: Add your control notification handler code here
MessageBox("请输入您要查找的用户名","查找提示");
}
BOOL CUserDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CString str;
int level;
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("select * from SysUser",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
if(m_pRecordset->GetRecordCount()!=0)
{
m_pRecordset->MoveFirst();
m_strUserName = m_pRecordset->GetCollect("NAME").bstrVal;
m_strUserPwd = m_pRecordset->GetCollect("PASSWORD").bstrVal;
level = m_pRecordset->GetCollect("LEVEL").lVal;
switch(level)
{
case 0:
m_strUserType = "学生";
break;
case 1:
m_strUserType = "教师";
break;
case 2:
m_strUserType = "管理员";
break;
default:
break;
}
}
m_dgUser.SetRefDataSource(NULL);
m_dgUser.SetRefDataSource((LPUNKNOWN)m_pRecordset);
m_dgUser.SetColumnHeaders(2) ;
m_dgUser.Refresh();
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUserDlg::OnChangeEditUserName()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString sql;
int level;
sql = "select * from SysUser where NAME = '"+m_strUserName+"'";
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
if(m_pRecordset->GetRecordCount()!=0)
{
m_strUserPwd = m_pRecordset->GetCollect("PASSWORD").bstrVal;
level = m_pRecordset->GetCollect("LEVEL").lVal;
switch(level)
{
case 0:
m_strUserType = "学生";
break;
case 1:
m_strUserType = "教师";
break;
case 2:
m_strUserType = "管理员";
break;
default:
break;
}
}
UpdateData(FALSE);
m_pRecordset->Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -