LogonDlg.cpp
上传用户:sztwq510
上传日期:2013-06-26
资源大小:4045k
文件大小:5k
源码类别:

酒店行业

开发平台:

Java

  1. // LogonDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "MyPos.h"
  5. #include "LogonDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CLogonDlg dialog
  13. extern CMyPosApp theApp;
  14. CLogonDlg::CLogonDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CLogonDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CLogonDlg)
  18. m_pwd = _T("");
  19. m_logid = _T("");
  20. //}}AFX_DATA_INIT
  21. }
  22. void CLogonDlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CLogonDlg)
  26. DDX_Control(pDX, IDC_COMBO_LOGON, m_oLogon);
  27. DDX_Text(pDX, IDC_EDIT_LOGPWD, m_pwd);
  28. DDX_CBString(pDX, IDC_COMBO_LOGON, m_logid);
  29. //}}AFX_DATA_MAP
  30. }
  31. BEGIN_MESSAGE_MAP(CLogonDlg, CDialog)
  32. //{{AFX_MSG_MAP(CLogonDlg)
  33. //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CLogonDlg message handlers
  37. void CLogonDlg::OnOK() 
  38. {  
  39. // TODO: Add extra validation here
  40. UpdateData();
  41. if(m_logid.IsEmpty()||m_pwd.IsEmpty())
  42. {
  43. AfxMessageBox("请输入用户名和密码!");
  44. return;
  45. }
  46. else//if user enter name and password.
  47. {
  48. //成生sql语句
  49. // m_pwd=theApp.addpwd(m_pwd,true);//Unencrypt the password.
  50. CString sql="SELECT * FROM USERS where LOGINID='"+m_logid+"' and PSD='"+m_pwd+"'";
  51. try
  52. {
  53. //查询数据库,看是否有此用户和密码
  54. m_pRecordset.CreateInstance("ADODB.Recordset");
  55. m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  56. //如果没有此用户和密码,再查询是否有此用户
  57. if(m_pRecordset->adoEOF)
  58. // {
  59. // m_pRecordset->Close();
  60. // sql="select LOGINID from USERS where LOGINID='"+m_logid+"'";
  61. // try
  62. // {
  63. // m_pRecordset.CreateInstance("ADODB.Recordset");
  64. // m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  65. // if(m_pRecordset->adoEOF)
  66. // {
  67. AfxMessageBox("用户名或密码错误!");
  68. // if(AfxMessageBox("用户名或密码错误!你想新建此用户吗?",MB_YESNO)==IDYES)
  69. // {
  70. // m_pRecordset->Close();
  71. // sql="insert into USERS (ID,NAME,LOGINID,PSD) values('"+m_logid+"','"+m_logid+"','"+m_logid+"','"+m_pwd+"')";
  72. // _variant_t RecordsAffected;
  73. // theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
  74. // AfxMessageBox("新用户成功建立!请记住:nn用户名:"+m_logid+"n密  码:"+theApp.addpwd(m_pwd,false));
  75. // theApp.name=m_logid;
  76. // theApp.pwd=m_pwd;
  77. // CDialog::OnOK();
  78. // }
  79. // else
  80. // return;
  81. // }
  82. //如果有,提示错误信息。
  83. // else
  84. // {
  85. // AfxMessageBox("用户名或密码错误!");
  86. // return;
  87. // }
  88. // }
  89. // catch(_com_error e)///捕捉异常
  90. // {
  91. // CString temp;
  92. // temp.Format("读取用户名和密码错误:%s",e.ErrorMessage());
  93. // AfxMessageBox(temp);
  94. // return;
  95. // }
  96. // }
  97. //用户名和密码存在,登录成功
  98. else
  99. {
  100. // theApp.name=m_logid;
  101. theApp.name=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("NAME");
  102. theApp.pwd=m_pwd;
  103. CDialog::OnOK();
  104. return;
  105. }
  106. m_pRecordset->Close();
  107. }
  108. catch(_com_error e)///捕捉异常
  109. {
  110. CString temp;
  111. temp.Format("读取用户名和密码错误:%s",e.ErrorMessage());
  112. AfxMessageBox(temp);
  113. return;
  114. }
  115. }
  116. }
  117. void CLogonDlg::OnCancel() 
  118. {
  119. // TODO: Add extra cleanup here
  120. CDialog::OnCancel();
  121. }
  122. BOOL CLogonDlg::OnInitDialog() 
  123. {
  124. CDialog::OnInitDialog();
  125.    //读出数据库中的用户名,显示在控件中。
  126. int i,recordcount;
  127. CString sql="select LOGINID from USERS order by LOGINID";
  128. try
  129. {
  130. m_pRecordset.CreateInstance("ADODB.Recordset");
  131. m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  132. recordcount=m_pRecordset->GetRecordCount();//Get records total.
  133. if(!m_pRecordset->adoEOF)
  134. {
  135. for(i=0;i<recordcount;i++)
  136. {
  137. m_oLogon.AddString((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("LOGINID"));
  138. sql=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("LOGINID");
  139. m_pRecordset->MoveNext();
  140. }
  141. }
  142. m_pRecordset->Close();
  143. }
  144. catch(_com_error e)///捕捉异常
  145. {
  146. CString temp;
  147. temp.Format("读取用户名错误:%s",e.ErrorMessage());
  148. AfxMessageBox(temp);
  149. return false;
  150. }
  151. m_BMButton1.AutoLoad(IDOK,this);
  152. m_BMButton2.AutoLoad(IDCANCEL,this);
  153. return TRUE;  // return TRUE unless you set the focus to a control
  154. // EXCEPTION: OCX Property Pages should return FALSE
  155. // m_BMButton1.AutoLoad(IDOK,this);
  156. }