📄 addassodlg.cpp
字号:
// AddAssoDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "TicketOffice.h"
#include "AddAssoDlg.h"
#include ".\addassodlg.h"
#include "PassagerInfo.h"
// CAddAssoDlg 对话框
IMPLEMENT_DYNAMIC(CAddAssoDlg, CDialog)
CAddAssoDlg::CAddAssoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddAssoDlg::IDD, pParent)
, m_UserID(0)
, m_CardID(_T(""))
, m_Address(_T(""))
, m_Email(_T(""))
, m_Tel(_T(""))
, m_ToDay(_T(""))
, m_Voyage(800)
, m_Number(0)
, m_Type(_T("初级"))
, m_NameC(_T(""))
, m_NameE(_T(""))
, m_Sex(_T(""))
{
m_pDlg = NULL;
}
CAddAssoDlg::~CAddAssoDlg()
{
}
void CAddAssoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_UserID);
DDX_Text(pDX, IDC_EDIT2, m_CardID);
DDX_Text(pDX, IDC_EDIT3, m_Address);
DDX_Text(pDX, IDC_EDIT4, m_Email);
DDX_Text(pDX, IDC_EDIT5, m_Tel);
DDX_Text(pDX, IDC_EDIT7, m_ToDay);
DDX_Text(pDX, IDC_EDIT8, m_Voyage);
DDX_Text(pDX, IDC_EDIT9, m_Number);
DDX_Text(pDX, IDC_EDIT10, m_Type);
DDX_Text(pDX, IDC_EDIT11, m_NameC);
DDX_Text(pDX, IDC_EDIT12, m_NameE);
DDX_Text(pDX, IDC_EDIT13, m_Sex);
DDX_Control(pDX, IDC_BUTTON6, m_AddUser);
DDX_Control(pDX, IDC_EDIT2, m_kCardID);
}
BEGIN_MESSAGE_MAP(CAddAssoDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON5, OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON6, OnBnClickedButton6)
END_MESSAGE_MAP()
// CAddAssoDlg 消息处理程序
BOOL CAddAssoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
m_AddUser.EnableWindow(false);
SYSTEMTIME SysTime;
GetLocalTime(&SysTime);
m_ToDay.Format("%d-%02d-%02d",SysTime.wYear,SysTime.wMonth,SysTime.wDay );
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CAddAssoDlg::OnBnClickedButton5()
{
CPassagerInfo dlg;
dlg.SetMyOwner(m_pDlg);
dlg.LockCardID( m_CardID );
if( dlg.DoModal() == IDOK )
OnBnClickedButton1();
}
// 验证身份
void CAddAssoDlg::OnBnClickedButton1()
{
if( UpdateData() == false )
return;
if( m_CardID == "" )
{
MessageBox("请填写身份证号");
return;
}
bool bFind = GetCardIDInfo( m_CardID );
m_AddUser.EnableWindow( bFind );
m_kCardID.SetReadOnly( bFind );
if( bFind == false )
{
MessageBox("没有该用户信息,请添加");
}
}
// 读取身份信息,返回用户身份是否找到
bool CAddAssoDlg::GetCardIDInfo(CString id)
{
bool bFind = false;
_ConnectionPtr pConnection;
_RecordsetPtr pRecordset;
try
{
HRESULT hr;
// 创建Connection对象
hr = pConnection.CreateInstance("ADODB.Connection");
if( SUCCEEDED( hr ) )
{
// 连接数据库
hr = pConnection->Open(m_pDlg->m_DBData.Linkbuf.GetBuffer(),
m_pDlg->m_DBData.UserName.GetBuffer(),m_pDlg->m_DBData.PassWord.GetBuffer(),
adModeUnknown);
}
else
{
MessageBox("创建数据库连接失败","失败",MB_OK);
return false;
}
}
catch( ... )
{
MessageBox( "连接数据库失败","失败",MB_OK);
return false;
}
CString temp;
try
{
// 生成Recordset实例
pRecordset.CreateInstance("ADODB.Recordset");
temp.Format("SELECT * FROM PassagerInfo WHERE (IDCard = '%s')",id);
pRecordset->Open( temp.GetBuffer(),
_variant_t((IDispatch*)pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch( _com_error * e )
{
pConnection->Close();
MessageBox( e->ErrorMessage(),"异常",MB_OK );
return false;
}
if( !pRecordset->adoEOF )
{
// 没有改旅客的信息,需要添加
try
{
_variant_t value;
CString temp;
value = pRecordset->GetCollect("Name");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_NameC = temp.Trim();
value = pRecordset->GetCollect("NameE");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_NameE = temp.Trim();
value = pRecordset->GetCollect("Sex");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_Sex = temp.Trim();
}
catch(...)
{
MessageBox("添加记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
bFind = true;
UpdateData(false);
}
try
{
pRecordset->Close();
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
}
return bFind;
}
void CAddAssoDlg::OnBnClickedButton6()
{
if( UpdateData() == false )
return;
if( AddUser() )
{
MessageBox("会员添加成功");
}
else
{
MessageBox("会员添加失败");
}
}
// 添加会员注册
bool CAddAssoDlg::AddUser()
{
bool bFind = false;
_ConnectionPtr pConnection;
_RecordsetPtr pRecordset;
try
{
HRESULT hr;
// 创建Connection对象
hr = pConnection.CreateInstance("ADODB.Connection");
if( SUCCEEDED( hr ) )
{
// 连接数据库
hr = pConnection->Open(m_pDlg->m_DBData.Linkbuf.GetBuffer(),
m_pDlg->m_DBData.UserName.GetBuffer(),m_pDlg->m_DBData.PassWord.GetBuffer(),
adModeUnknown);
}
else
{
MessageBox("创建数据库连接失败","失败",MB_OK);
return false;
}
}
catch( ... )
{
MessageBox( "连接数据库失败","失败",MB_OK);
return false;
}
CString temp;
try
{
// 生成Recordset实例
pRecordset.CreateInstance("ADODB.Recordset");
temp.Format("SELECT * FROM AssociatorInfo WHERE (IDCard = '%s')",m_CardID);
pRecordset->Open( temp.GetBuffer(),
_variant_t((IDispatch*)pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
}
catch( _com_error * e )
{
pConnection->Close();
MessageBox( e->ErrorMessage(),"异常",MB_OK );
return false;
}
if( pRecordset->adoEOF )
{
// 添加会员
try
{
SYSTEMTIME t;
COleDateTime now;
pRecordset->AddNew();
GetLocalTime(&t);
now.SetDate( t.wYear,t.wMonth,t.wDay );
pRecordset->PutCollect( "Date", _variant_t(now) );
pRecordset->PutCollect( "Voyage", _variant_t(m_Voyage) );
pRecordset->PutCollect( "Number", _variant_t(m_Number) );
pRecordset->PutCollect( "Type", _variant_t(m_Type) );
pRecordset->PutCollect( "Address", _variant_t(m_Address) );
pRecordset->PutCollect( "Email", _variant_t(m_Email) );
pRecordset->PutCollect( "Tel", _variant_t(m_Tel) );
pRecordset->PutCollect( "IDCard", _variant_t(m_CardID) );
pRecordset->Update();
}
catch(...)
{
MessageBox("添加记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
// 会员添加成功后,得到会员ID
try
{
_variant_t value;
value = pRecordset->GetCollect("AssociatorID");
if( value.vt != VT_NULL )
{
m_UserID = value.lVal;
bFind = true;
UpdateData(false);
}
else
{
m_UserID = 0;
MessageBox("记录添加失败");
}
}
catch(...)
{
MessageBox("读取记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
// 向用户身份信息中添加会员ID
try
{
pRecordset->Close();
temp.Format("SELECT * FROM PassagerInfo WHERE (IDCard = '%s')",m_CardID);
pRecordset->Open( temp.GetBuffer(),
_variant_t((IDispatch*)pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
pRecordset->PutCollect("AssociatorID", _variant_t(m_UserID));
pRecordset->Update();
}
catch(...)
{
MessageBox("读取记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
}
else
{
MessageBox("该身份证已经注册为会员了,不能再次注册");
}
try
{
pRecordset->Close();
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
}
return bFind;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -