📄 userdlg.cpp
字号:
// UserDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ExMIS.h"
#include "UserDlg.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_nPower = 0;
m_strPassword = _T("");
m_strUsername = _T("");
//}}AFX_DATA_INIT
}
void CUserDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUserDlg)
DDX_Control(pDX, IDC_LIST, m_ctrlList);
DDX_Text(pDX, IDC_EDIT_POWER, m_nPower);
DDV_MinMaxInt(pDX, m_nPower, 0, 3);
DDX_Text(pDX, IDC_EDIT_PASSWORD, m_strPassword);
DDX_Text(pDX, IDC_EDIT_USERNAME, m_strUsername);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUserDlg, CDialog)
//{{AFX_MSG_MAP(CUserDlg)
ON_NOTIFY(NM_CLICK, IDC_LIST, OnClickList)
ON_BN_CLICKED(IDC_BUTTON_CLEAR, OnButtonClear)
ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
ON_BN_CLICKED(IDC_BUTTON_EDIT, OnButtonEdit)
ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUserDlg message handlers
BOOL CUserDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//添加的代码
m_ctrlList.InsertColumn(0,"用户名");
m_ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ctrlList.SetColumnWidth(0,160);
//打开ADO的连接
m_pRS.ADOOpen();
//在列表中显示用户
ShowListItems();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUserDlg::ShowListItems()
{
m_ctrlList.DeleteAllItems();
m_pRS.ADOExcute("SELECT Username FROM UserTab");
int i=0;
while(!m_pRS.ADOEOF()){
m_ctrlList.InsertItem(i++,m_pRS.GetFieldString(0));
m_pRS.MoveNext();
}
//m_ctrlList.SetRedraw(TRUE);
}
void CUserDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
//添加的代码:从数据库中获取选择用户名的资料
CString strSQL;
int i = m_ctrlList.GetSelectionMark();
CString str=m_ctrlList.GetItemText(i,0);
strSQL.Format("SELECT * FROM UserTab WHERE Username='%s'",str);
m_pRS.ADOExcute(strSQL);
if(m_pRS.nFieldRows!=1)
{
AfxMessageBox("数据库查找错误!");
return ;
}
m_strUsername=m_pRS.GetFieldString("Username");
m_strPassword=m_pRS.GetFieldString("Password");
m_nPower=m_pRS.GetFieldNumber("Power");
UpdateData(false);
}
void CUserDlg::OnButtonClear()
{
// 清空
m_strUsername="";
m_strPassword="";
m_nPower=0;
UpdateData(false);
}
void CUserDlg::OnButtonAdd()
{
// 添加:password,user等是SQL语言中的保留字,在执行此类SQL操作时应加上方括号
UpdateData(true);
CString sql;
sql.Format("INSERT INTO UserTab(Username,[Password],Power) Values ('%s','%s',%d)",m_strUsername,m_strPassword,m_nPower);
if(m_pRS.ADOExcuteNoQuery(sql)==1){
AfxMessageBox("增加记录成功!");
//增加完记录后,马上刷新显示;
ShowListItems();
}else{
AfxMessageBox("增加记录失败,可能是重复的用户名,可选择保存修改!");
}
}
void CUserDlg::OnButtonEdit()
{
// 编辑:password,user等是SQL语言中的保留字,在执行此类SQL操作时应加上方括号
UpdateData(true);
CString sql;
sql.Format("UPDATE UserTab SET [Password]='%s',Power=%d WHERE Username='%s'",m_strPassword,m_nPower,m_strUsername);
AfxMessageBox(sql);
if(m_pRS.ADOExcuteNoQuery(sql)==1){
AfxMessageBox("编辑记录成功!");
//编辑完记录后,马上刷新显示;
ShowListItems();
}else{
AfxMessageBox("编辑记录失败!");
}
}
void CUserDlg::OnButtonDel()
{
// 删除,此操作不能恢复,一般都需要确认一下
if(AfxMessageBox("您确认要删除吗?",MB_OKCANCEL)==IDOK)
{
UpdateData(true);
CString sql;
sql.Format("DELETE * FROM UserTab WHERE Username='%s'",m_strUsername);
if(m_pRS.ADOExcuteNoQuery(sql)==1){
AfxMessageBox("删除记录成功!");
//刷新显示;
ShowListItems();
}else{
AfxMessageBox("删除记录失败!");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -