⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 passagerinfo.cpp

📁 使用Visual C++ .NET实现简单了一个票务管理系统
💻 CPP
字号:
// PassagerInfo.cpp : 实现文件
//

#include "stdafx.h"
#include "TicketOffice.h"
#include "PassagerInfo.h"
#include ".\passagerinfo.h"


// CPassagerInfo 对话框

IMPLEMENT_DYNAMIC(CPassagerInfo, CDialog)
CPassagerInfo::CPassagerInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CPassagerInfo::IDD, pParent)
	, m_CardID(_T(""))
	, m_NameC(_T(""))
	, m_NameE(_T(""))
	, m_Tel(_T(""))
{
	m_pDlg = NULL;
	m_pCardID = NULL;
}

CPassagerInfo::~CPassagerInfo()
{
}

void CPassagerInfo::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_Control(pDX, IDC_COMBO1, m_SexCombo);
	DDX_Text(pDX, IDC_EDIT6, m_Tel);
}


BEGIN_MESSAGE_MAP(CPassagerInfo, CDialog)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()


// CPassagerInfo 消息处理程序

BOOL CPassagerInfo::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	m_SexCombo.AddString("男");
	m_SexCombo.AddString("女");
	m_SexCombo.SetCurSel(0);

	if( m_pCardID != NULL )
		m_CardID = *m_pCardID;
	UpdateData(false);

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}
// 添加旅客信息
bool CPassagerInfo::AddPassangerInfo()
{
	_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')",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
		{
			pRecordset->AddNew();
			pRecordset->PutCollect( "IDCard", _variant_t(m_CardID) );
			pRecordset->PutCollect( "Name", _variant_t(m_NameC) );
			pRecordset->PutCollect( "NameE", _variant_t(m_NameE) );
			if( m_SexCombo.GetCurSel() == 0 )
				temp = "男";
			else
				temp = "女";
			pRecordset->PutCollect( "Sex", _variant_t(temp) );
			pRecordset->PutCollect( "Tel", _variant_t(m_Tel) );
			pRecordset->Update();
		}
		catch(...)
		{
			MessageBox("添加记录异常","异常",MB_OK );
			pRecordset->Close();
			pConnection->Close();
			return false;
		}
	}

	try
	{
		pRecordset->Close();
		pConnection->Close();
	}
	catch( _com_error * e )
	{
		MessageBox(e->ErrorMessage(),"失败",MB_OK );
	}
	return true;
}

void CPassagerInfo::OnBnClickedCancel()
{
	// TODO: 在此添加控件通知处理程序代码
	OnCancel();
}

void CPassagerInfo::OnBnClickedOk()
{
	if( UpdateData() == false )
		return;

	if( AddPassangerInfo() )
	{
		if( m_pCardID != NULL )
			*m_pCardID = m_CardID;
		MessageBox("信息添加成功");
	}
	else
	{
		if( m_pCardID != NULL )
			*m_pCardID = "";
		MessageBox("信息添加失败");
	}
	OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -