?? powerdlg.cpp
字號:
// PowerDlg.cpp : implementation file
//
#include "stdafx.h"
#include "PowerSet.h"
#include "PowerDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPowerDlg dialog
extern CPowerSetApp theApp;
CPowerDlg::CPowerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPowerDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPowerDlg)
m_power = _T("");
m_pwd = _T("");
m_repwd = _T("");
m_user = _T("");
//}}AFX_DATA_INIT
}
void CPowerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPowerDlg)
DDX_Control(pDX, IDC_PWD, m_ctrpwd);
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Control(pDX, IDC_USER, m_ctruser);
DDX_Control(pDX, IDC_COMBO1, m_ctrpower);
DDX_Control(pDX, ID_USER_SAVE, m_btnSave);
DDX_Control(pDX, ID_USER_EXIT, m_btnExit);
DDX_Control(pDX, ID_USER_DEL, m_btnDel);
DDX_Control(pDX, ID_USER_CANCEL, m_btnCancel);
DDX_Control(pDX, ID_USER_ADD, m_btnAdd);
DDX_CBString(pDX, IDC_COMBO1, m_power);
DDX_Text(pDX, IDC_PWD, m_pwd);
DDX_Text(pDX, IDC_REPWD, m_repwd);
DDX_Text(pDX, IDC_USER, m_user);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPowerDlg, CDialog)
//{{AFX_MSG_MAP(CPowerDlg)
ON_BN_CLICKED(ID_USER_ADD, OnUserAdd)
ON_BN_CLICKED(ID_USER_DEL, OnUserDel)
ON_BN_CLICKED(ID_USER_SAVE, OnUserSave)
ON_BN_CLICKED(ID_USER_CANCEL, OnUserCancel)
ON_BN_CLICKED(ID_USER_EXIT, OnUserExit)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPowerDlg message handlers
/////////////////////////////////////////////////////////
//對話框初始化,用戶信息列表顯示
//作者:武
//////////////////////////////////////////////////////////
BOOL CPowerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list.SetHeadings(_T("用戶名稱,100; 管理權限,100"));
UpdateList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/////////////////////////////////////////////////////////
//用戶信息添加
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::OnUserAdd()
{
m_user = " ";
m_pwd = " ";
m_repwd = " ";
m_power = " ";
//設置用戶名編輯框為可用
m_ctruser.EnableWindow(TRUE);
m_ctruser.SetFocus();
//更新數據到界面
this->UpdateData(FALSE);
}
/////////////////////////////////////////////////////////
//用戶信息刪除
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::OnUserDel()
{
this->UpdateData(TRUE);
//判斷是否指定用戶
if(m_user=="")
{
MessageBox("請選擇一個你想要刪除的用戶!");
return;
}
if(this->MessageBox("你真的要刪除所選擇用戶嗎?",
"",MB_YESNO)==IDNO)
return;
CString strSql;
_variant_t fieldCount;
strSql= "DELETE FROM users WHERE username = '"+m_user+"'" ;
theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
VariantClear (&fieldCount);
//更新列表框
this->UpdateList();
//更新界面元素
m_user = " ";
m_pwd = " ";
m_repwd = " ";
m_power = " ";
this->UpdateData(FALSE);
}
/////////////////////////////////////////////////////////
//用戶信息保存
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::OnUserSave()
{
this->UpdateData();
if(m_ctruser.IsWindowEnabled())
{//增加新用戶的輸入檢查
if(m_user=="")
{
MessageBox("請填寫用戶名!");
m_ctruser.SetFocus();
return;
}
}
else
{//修改用戶信息輸入檢查
if(m_user=="")
{
MessageBox("請選擇一個用戶!");
return;
}
}
//限制用戶密碼不能為空
if(m_pwd=="")
{
MessageBox("用戶密碼不能為空,請輸入密碼!");
m_ctrpwd.SetFocus();
return;
}
//驗證密碼與確認密碼是否一致
if(m_pwd!=m_repwd)
{
MessageBox("再次輸入密碼不一致,請重新輸入密碼!");
m_ctrpwd.SetFocus();
m_pwd = "";
m_repwd = "";
this->UpdateData(FALSE);
return;
}
CString Sql, strSql;
_variant_t fieldCount;
//判斷用戶是否重復
m_pCon=theApp.m_pConnection;//給連接對象賦值
m_pset.CreateInstance("ADODB.Recordset");//創建記錄集實例對象
Sql.Format("select * from users where username = '%s'", m_user);
try
{
m_pset->Open((_bstr_t)Sql,&(*m_pCon),adOpenForwardOnly,adLockOptimistic,adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox("數據記錄打開失敗!");
}
//打開記錄集,進行用戶信息增加或修改
if(m_ctruser.IsWindowEnabled())
{//增加新用戶的輸入檢查
if(!m_pset->adoEOF)
{
MessageBox("該用戶已經存在!");
m_pset->Close();
return;
}
else
{
strSql="insert into users (username, passwd, power) values ('" +m_user+ "', '" +m_pwd+ "', '" +m_power+ "') " ;
theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
VariantClear (&fieldCount);
//更新用戶列表
this->UpdateList();
}
}
else
{//修改用戶信息
if(m_pset->adoEOF)
{
MessageBox("該用戶不存在!無法進行修改");
m_pset->Close();
return;
}
else
{
strSql = "update users set username ='" + m_user + "', passwd ='" + m_pwd + "', power ='" + m_power + "'where username ='" + m_user + "' ";
theApp.m_pConnection->Execute((_bstr_t)strSql,&fieldCount,adCmdText);
VariantClear (&fieldCount);
//更新用戶列表
this->UpdateList();
}
}
m_ctruser.EnableWindow(FALSE);
}
/////////////////////////////////////////////////////////
//對話框信息置空
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::OnUserCancel()
{
m_user = " ";
m_pwd = " ";
m_repwd = " ";
m_power = " ";
//更新數據到界面
this->UpdateData(FALSE);
}
/////////////////////////////////////////////////////////
//對話框退出
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::OnUserExit()
{
CDialog::OnCancel();
}
/////////////////////////////////////////////////////////
//更新顯示對話框
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::UpdateList()
{
CString strSql;
//取數據庫中得所有記錄
m_pCon=theApp.m_pConnection;//給連接對象賦值
m_pset.CreateInstance("ADODB.Recordset");//創建記錄集實例對象
strSql.Format("select * from users" );
m_list.DeleteAllItems();
try
{
m_pset->Open((_bstr_t)strSql,&(*m_pCon),adOpenForwardOnly,adLockOptimistic,adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox("數據記錄打開失敗!");
}
CString user,power;
_bstr_t bstrVal;
while(!m_pset->adoEOF)
{
user = m_pset->GetCollect("username").bstrVal;
power = m_pset->GetCollect("power").bstrVal;
m_list.AddItem(_T(user),_T(power));
m_pset->MoveNext();
}
m_pset->Close();
}
/////////////////////////////////////////////////////////
//點擊用戶列表時更新顯示
//作者:武
//////////////////////////////////////////////////////////
void CPowerDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
int nSelRows = m_list.GetSelectedCount();
if(!nSelRows) //-- If there are no rows selected,jump out here
return;
//-- Get the position of the first selected row
POSITION pos =m_list.GetFirstSelectedItemPosition();
//-- Get the index of next selected row
int i = m_list.GetNextSelectedItem(pos);
TRACE("First Item %d\n",i);
CString qx;
if (i != -1) //-- Execute this loop as long as GetNextSelectedItem() returns -1
{
m_user = m_list.GetItemText(i, 0);
m_power = m_list.GetItemText(i, 1);
}
UpdateData(FALSE);
return;
*pResult = 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -