📄 dlglogin.cpp
字号:
// DlgLogin.cpp : implementation file
//
#include "stdafx.h"
#include "Lhj_cyglxt.h"
#include "DlgLogin.h"
#include "DlgAdmin.h"
#include "Lhj_cyglxtDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgLogin dialog
extern CDatabase m_db;
CString username;//记录登录系统的使用者 作为结帐人
CDlgLogin::CDlgLogin(CWnd* pParent /*=NULL*/)
: CDialog(CDlgLogin::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgLogin)
m_password = _T("");
//}}AFX_DATA_INIT
}
void CDlgLogin::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgLogin)
DDX_Control(pDX, IDC_COMBO_name, m_loginname);
DDX_Text(pDX, IDC_EDIT_password, m_password);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgLogin, CDialog)
//{{AFX_MSG_MAP(CDlgLogin)
ON_BN_CLICKED(IDC_RADIO_status0, OnRADIOstatus0)
ON_BN_CLICKED(IDC_RADIO_status1, OnRADIOstatus1)
ON_BN_CLICKED(IDC_BUTTON_ToAdmin, OnBUTTONToAdmin)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgLogin message handlers
BOOL CDlgLogin::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
ConnectDB();//连接数据源
//IDC_RADIO_status0.Checked=true;
//OnRADIOstatus0();//..................................
status=0;
//读出数据库中的用户名,显示在控件中。
TRY
{
CRecordset rs(&m_db);
CString sql="select user_loginname from users_infor ";
rs.Open(CRecordset::dynaset, sql,CRecordset::readOnly);//动态集
CString loginname;
//m_loginname.AddString("11111111");
while (!rs.IsEOF())
{
rs.GetFieldValue((short)0,loginname);
m_loginname.AddString(loginname);
rs.MoveNext();
}
m_loginname.SetWindowText("lhj");
rs.Close();
}
CATCH(CDBException,ex)
{
AfxMessageBox ("db open failed!");
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgLogin::ConnectDB()
{
//打开数据库的连接,并且捕获异常
CString strConnect,m_DSN="Lhj_cyglxt",m_usrName="lhj",m_key="lhj";
strConnect.Format("DSN=%s;UID=%s;PWD=%s",m_DSN,m_usrName,m_key);
TRY
{
m_db.OpenEx(strConnect,CDatabase::noOdbcDialog);
}
CATCH(CDBException,ex)
{
AfxMessageBox ("db open failed!");
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox ("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CDlgLogin::OnRADIOstatus0()
{
// TODO: Add your control notification handler code here
status=0;
}
void CDlgLogin::OnRADIOstatus1()
{
// TODO: Add your control notification handler code here
status=1;
}
void CDlgLogin::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
CString name;
m_loginname.GetWindowText(name);
if(m_password.IsEmpty())
{
AfxMessageBox("请输入用户名和密码!");
return;
}
else
//if user enter name and password.
{
//成生sql语句
CRecordset rs(&m_db);
CString sql="select user_loginname,user_loginpwd from users_infor where user_loginname='"+name+"'and user_loginpwd='"+m_password+"' ";
rs.Open(CRecordset::dynaset, sql);
if (rs.IsEOF())
{
AfxMessageBox ("输入的用户名或密码错误!");
return;
}
rs.Close();
m_loginname.GetWindowText(username);
}
CDialog::OnOK();
}
void CDlgLogin::OnBUTTONToAdmin()
{
// TODO: Add your control notification handler code here
UpdateData();
CString name;
m_loginname.GetWindowText(name);
if(m_password.IsEmpty())
{
AfxMessageBox("请输入用户名和密码!");
return;
}
else
//if user enter name and password.
{
//成生sql语句
CRecordset rs(&m_db);
CString sql="select user_loginname,user_loginpwd from users_infor where user_loginname='"+name+"'and user_loginpwd='"+m_password+"'and user_status='1' ";
rs.Open(CRecordset::dynaset, sql);
if (rs.IsEOF())
{
AfxMessageBox ("输入的用户名或密码错误,或您没有权限访问!");
rs.Close();
return;
}
else
{
CDlgAdmin dlgadmin;
dlgadmin.DoModal();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -