UserDlg.cpp
上传用户:rs600066
上传日期:2017-10-16
资源大小:4788k
文件大小:6k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // UserDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "school.h"
  5. #include "UserDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CUserDlg dialog
  13. CUserDlg::CUserDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CUserDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CUserDlg)
  17. m_bIsAdmin = FALSE;
  18. m_strUser = _T("");
  19. m_strPass = _T("");
  20. m_strRePass = _T("");
  21. //}}AFX_DATA_INIT
  22. }
  23. void CUserDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CUserDlg)
  27. DDX_Control(pDX, IDOK, m_bntOK);
  28. DDX_Control(pDX, IDC_BUTTON_NEW, m_bntNew);
  29. DDX_Control(pDX, IDC_BUTTON_DELETE1, m_bntDelete);
  30. DDX_Control(pDX, IDC_BUTTON_CANCEL, m_bntCancel);
  31. DDX_Control(pDX, IDC_EDIT2, m_ctrPass);
  32. DDX_Control(pDX, IDC_EDIT1, m_ctrUser);
  33. DDX_Control(pDX, IDC_LIST_USERNAME, m_ctrList);
  34. DDX_Check(pDX, IDC_CHECK1, m_bIsAdmin);
  35. DDX_Text(pDX, IDC_EDIT1, m_strUser);
  36. DDX_Text(pDX, IDC_EDIT2, m_strPass);
  37. DDX_Text(pDX, IDC_EDIT3, m_strRePass);
  38. //}}AFX_DATA_MAP
  39. }
  40. BEGIN_MESSAGE_MAP(CUserDlg, CDialog)
  41. //{{AFX_MSG_MAP(CUserDlg)
  42. ON_NOTIFY(NM_CLICK, IDC_LIST_USERNAME, OnClickListUsername)
  43. ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)
  44. ON_BN_CLICKED(IDC_BUTTON_DELETE1, OnButtonDelete)
  45. ON_BN_CLICKED(IDC_BUTTON_CANCEL, OnButtonCancel)
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CUserDlg message handlers
  50. BOOL CUserDlg::OnInitDialog() 
  51. {
  52. CDialog::OnInitDialog();
  53. m_ctrList.InsertColumn(0,"用户名");
  54. m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
  55. m_ctrList.SetColumnWidth(0,120);
  56. RefreshData();
  57. return TRUE;  // return TRUE unless you set the focus to a control
  58.               // EXCEPTION: OCX Property Pages should return FALSE
  59. }
  60. void CUserDlg::RefreshData() 
  61. {
  62. m_ctrList.SetFocus();
  63. m_ctrList.DeleteAllItems();
  64. m_ctrList.SetRedraw(FALSE);
  65. CString strSQL;
  66. UpdateData(TRUE);
  67. strSQL="select * from user";
  68. if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  69. {
  70. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  71. return ;
  72. }
  73. int i=0;
  74. while(!m_recordset.IsEOF())
  75. {
  76. m_ctrList.InsertItem(i++,m_recordset.m_user);
  77. m_recordset.MoveNext();
  78. }
  79. m_recordset.Close();
  80. m_ctrList.SetRedraw(TRUE);
  81. // UpdateData(FALSE);
  82. }
  83. void CUserDlg::OnClickListUsername(NMHDR* pNMHDR, LRESULT* pResult) 
  84. {
  85. // TODO: Add your control notification handler code here
  86. CString strSQL;
  87. UpdateData(TRUE);
  88. int i = m_ctrList.GetSelectionMark();
  89. m_strUser = m_ctrList.GetItemText(i,0);
  90. strSQL.Format("select * from user where user='%s'",m_strUser);
  91. if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  92. {
  93. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  94. return ;
  95. }
  96. m_strPass = m_recordset.m_passwd;
  97. m_strRePass = m_strPass;
  98. m_bIsAdmin = m_recordset.m_isadmin;
  99. m_recordset.Close();
  100. UpdateData(FALSE);
  101. *pResult = 0;
  102. }
  103. void CUserDlg::OnButtonNew() 
  104. {
  105. // TODO: Add your control notification handler code here
  106. m_strUser = "";
  107. m_strPass = "";
  108. m_strRePass = "";
  109. m_bIsAdmin = FALSE;
  110. m_ctrUser.EnableWindow(TRUE);
  111. m_ctrUser.SetFocus();
  112. UpdateData(FALSE);
  113. }
  114. void CUserDlg::OnButtonDelete() 
  115. {
  116. // TODO: Add your control notification handler code here
  117. UpdateData(TRUE);
  118. if(m_strUser=="")
  119. {
  120. MessageBox("请选择一个用户!");
  121. return;
  122. }
  123. CString strSQL;
  124. strSQL.Format("select * from user where user='%s'",m_strUser);
  125. if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  126. {
  127. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  128. return ;
  129. }
  130. //删除该用户
  131. m_recordset.Delete();
  132. m_recordset.Close();
  133. //刷新用户列表
  134. RefreshData();
  135. m_strUser = "";
  136. m_strPass = "";
  137. m_strRePass = "";
  138. m_bIsAdmin = FALSE;
  139. UpdateData(FALSE);
  140. }
  141. void CUserDlg::OnOK() 
  142. {
  143. UpdateData();
  144. if(m_ctrUser.IsWindowEnabled())
  145. {//增加新用户
  146. if(m_strUser=="")
  147. {
  148. MessageBox("请填写用户名!");
  149. m_ctrUser.SetFocus();
  150. return;
  151. }
  152. }
  153. else
  154. {//修改用户信息
  155. if(m_strUser=="")
  156. {
  157. MessageBox("请选择一个用户!");
  158. return;
  159. }
  160. }
  161. if(m_strPass=="")
  162. {
  163. MessageBox("密码不能为空,请输入密码!");
  164. m_ctrPass.SetFocus();
  165. return;
  166. }
  167. if(m_strPass!=m_strRePass)
  168. {
  169. MessageBox("两次输入地密码不一致,请重新输入密码!");
  170. m_ctrPass.SetFocus();
  171. m_strPass = "";
  172. m_strRePass = "";
  173. UpdateData(FALSE);
  174. return;
  175. }
  176. CString strSQL;
  177. strSQL.Format("select * from user where user='%s'",m_strUser);
  178. if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  179. {
  180. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  181. return ;
  182. }
  183. if(m_ctrUser.IsWindowEnabled())
  184. {//增加新用户
  185. //判断用户是否已经存在
  186. if(m_recordset.GetRecordCount()!=0)
  187. {
  188. m_recordset.Close();
  189. MessageBox("该用户已经存在!");
  190. return;
  191. }
  192. m_recordset.AddNew();
  193. m_recordset.m_user = m_strUser;
  194. m_recordset.m_passwd = m_strPass;
  195. m_recordset.m_isadmin = m_bIsAdmin;
  196. m_recordset.Update();
  197. MessageBox("用户添加成功!请记住用户名和密码!");
  198. m_recordset.Close();
  199. }
  200. else
  201. {//修改用户信息
  202. if(m_recordset.GetRecordCount()==0)
  203. {//判断用户是否不存在
  204. m_recordset.Close();
  205. MessageBox("该用户不存在!请更新数据库");
  206. return;
  207. }
  208. m_recordset.Edit();
  209. m_recordset.m_user = m_strUser;
  210. m_recordset.m_passwd = m_strPass;
  211. m_recordset.m_isadmin = m_bIsAdmin;
  212. m_recordset.Update();
  213. MessageBox("用户修改成功!请记住用户名和密码!");
  214. m_recordset.Close();
  215. }
  216. m_ctrUser.EnableWindow(FALSE);
  217. RefreshData();
  218. }
  219. void CUserDlg::OnButtonCancel() 
  220. {
  221. // TODO: Add your control notification handler code here
  222. m_strUser = "";
  223. m_strPass = "";
  224. m_strRePass = "";
  225. m_bIsAdmin = FALSE;
  226. m_ctrUser.EnableWindow(FALSE);
  227. UpdateData(FALSE);
  228. }