📄 passagerchangedlg.cpp
字号:
// PassagerChangeDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "TicketOffice.h"
#include "PassagerChangeDlg.h"
#include ".\passagerchangedlg.h"
#include "PassagerInfo.h"
// CPassagerChangeDlg 对话框
IMPLEMENT_DYNAMIC(CPassagerChangeDlg, CDialog)
CPassagerChangeDlg::CPassagerChangeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPassagerChangeDlg::IDD, pParent)
, m_CardID(_T(""))
, m_NameC(_T(""))
, m_NameE(_T(""))
, m_Sex(_T(""))
, m_Tel(_T(""))
{
m_pCardID = NULL;
}
CPassagerChangeDlg::~CPassagerChangeDlg()
{
}
void CPassagerChangeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_CardID);
DDX_Text(pDX, IDC_EDIT2, m_NameC);
DDX_Text(pDX, IDC_EDIT3, m_NameE);
DDX_Text(pDX, IDC_EDIT4, m_Sex);
DDX_Text(pDX, IDC_EDIT6, m_Tel);
DDX_Control(pDX, IDOK, m_kBtOK);
}
BEGIN_MESSAGE_MAP(CPassagerChangeDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_EN_CHANGE(IDC_EDIT1, OnEnChangeEdit1)
ON_BN_CLICKED(IDC_BUTTON5, OnBnClickedButton5)
END_MESSAGE_MAP()
// CPassagerChangeDlg 消息处理程序
BOOL CPassagerChangeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
if( m_pCardID != NULL )
{
OnBnClickedButton1();
}
return TRUE; // return TRUE unless you set the focus to a control
}
// 检索旅客信息
void CPassagerChangeDlg::OnBnClickedButton1()
{
if( UpdateData() == false )
return;
bool b = SetPassageInfo( m_CardID );
m_kBtOK.EnableWindow( b );
if( !b )
{
MessageBox("没有找到该旅客信息");
}
}
// 根据身份证ID,填写旅客信息
bool CPassagerChangeDlg::SetPassageInfo( CString id )
{
_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;
}
bool b = true;
if( !pRecordset->adoEOF )
{
// 没有改旅客的信息,需要添加
_variant_t value;
try
{
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();
value = pRecordset->GetCollect("Tel");
if( value.vt != VT_NULL )
temp = value.bstrVal;
else
temp = "";
m_Tel = temp.Trim();
m_CardID = id;
UpdateData(false);
}
catch(...)
{
MessageBox("读取记录异常","异常",MB_OK );
pRecordset->Close();
pConnection->Close();
return false;
}
}
else
{
b = false;
}
try
{
pRecordset->Close();
pConnection->Close();
}
catch( _com_error * e )
{
MessageBox(e->ErrorMessage(),"失败",MB_OK );
b = false;
}
return b;
}
void CPassagerChangeDlg::OnBnClickedOk()
{
*m_pCardID = m_CardID;
OnOK();
}
void CPassagerChangeDlg::OnEnChangeEdit1()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
m_kBtOK.EnableWindow(false);
}
// 没有该旅客信息,需要添加
void CPassagerChangeDlg::OnBnClickedButton5()
{
if( UpdateData() == false )
return;
CPassagerInfo dlg;
dlg.SetMyOwner( m_pDlg );
dlg.LockCardID( m_CardID );
if( dlg.DoModal() == IDOK )
{
UpdateData(false);
OnBnClickedButton1();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -