?? 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 + -