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

📄 checkdvdinfo.cpp

📁 影碟出租系统 利用mfc编程 与数据库连接
💻 CPP
字号:
// CheckDVDInfo.cpp : implementation file
//

#include "stdafx.h"
#include "Rent.h"
#include "CheckDVDInfo.h"
#include "connectionDB.h"
#include "addrentinfo.h"
#include "rentdlg.h"
#include "rewritedlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCheckDVDInfo dialog


CCheckDVDInfo::CCheckDVDInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CCheckDVDInfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCheckDVDInfo)
	m_CName = _T("");
	//}}AFX_DATA_INIT
}


void CCheckDVDInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCheckDVDInfo)
	DDX_Control(pDX, IDC_RENT, m_RentButton);
	DDX_Control(pDX, IDC_REWRITE, m_RwButton);
	DDX_Control(pDX, IDC_CHECK_NAME, m_EditName);
	DDX_Control(pDX, IDC_LIST_CHECK, m_CheckList);
	DDX_Text(pDX, IDC_CHECK_NAME, m_CName);
	//}}AFX_DATA_MAP
}

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

	m_CheckList.InsertColumn(0,"ID",LVCFMT_LEFT,50,-1);
	m_CheckList.InsertColumn(1,"名称",LVCFMT_LEFT,120,-1);
	m_CheckList.InsertColumn(2,"发行日期",LVCFMT_LEFT,110,-1);
	m_CheckList.InsertColumn(3,"所属地",LVCFMT_LEFT,90,-1);
	m_CheckList.InsertColumn(4,"库存数量",LVCFMT_LEFT,70,-1);
	m_CheckList.InsertColumn(5,"备注",LVCFMT_LEFT,350,-1);
	m_CheckList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

	m_RwButton.EnableWindow(FALSE);
	m_RentButton.EnableWindow(FALSE);
	return TRUE;
}


BEGIN_MESSAGE_MAP(CCheckDVDInfo, CDialog)
	//{{AFX_MSG_MAP(CCheckDVDInfo)
	ON_BN_CLICKED(IDC_CHECK, OnCheck)
	ON_BN_CLICKED(IDC_LISTALL, OnListall)
	ON_BN_CLICKED(IDC_RENT, OnRent)
	ON_BN_CLICKED(IDC_REWRITE, OnRewrite)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCheckDVDInfo message handlers

void CCheckDVDInfo::OnCheck() 
{//根据输入的条件查找DVD信息
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(m_CName.IsEmpty())
	{
		MessageBox("请输入要查找的DVD名称");
		m_EditName.SetFocus();
		return;
	}			
	m_CheckList.DeleteAllItems();//删除列表框中所有内容
	UpdateData(FALSE);
	_RecordsetPtr pRecordset;
	CConnectionDB *connectionDB=new CConnectionDB();
	m_pConnection=connectionDB->GetConnectionPtr();//获取连接指针
	pRecordset.CreateInstance(__uuidof(Recordset));
	CString strSQL;
	strSQL.Format("select * from DVDInfo where DVDName='%s'",m_CName);
	_variant_t var;
	CString strValue;
	int ItemNum=0;
	try
	{
		pRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(),
							adOpenDynamic,adLockOptimistic,adCmdText);
	}
	catch(_com_error *e)
	{
		MessageBox(e->ErrorMessage());
		return;
	}
	if((pRecordset->adoEOF)&&(pRecordset->BOF))
	{
		MessageBox("没有记录!");
		m_RwButton.EnableWindow(FALSE);
		m_RentButton.EnableWindow(FALSE);
		return;
	}
	try
	{
		while(!pRecordset->adoEOF)
		{

			var=pRecordset->GetCollect("DVDID");
			if(var.vt!=VT_NULL)
				strValue=(LPCSTR)_bstr_t(var);
			m_CheckList.InsertItem(ItemNum,strValue);

			var=pRecordset->GetCollect("DVDName");
			if(var.vt!=VT_NULL)
				strValue=(LPCSTR)_bstr_t(var);
			m_CheckList.SetItemText(ItemNum,1,strValue);

			var=pRecordset->GetCollect("OutDate");
			if(var.vt!=VT_NULL)
				strValue=(LPCSTR)_bstr_t(var);
			m_CheckList.SetItemText(ItemNum,2,strValue);

			var=pRecordset->GetCollect("Place");
			if(var.vt!=VT_NULL)
				strValue=(LPCSTR)_bstr_t(var);
			m_CheckList.SetItemText(ItemNum,3,strValue);

			var=pRecordset->GetCollect("DVDNum");
			if(var.vt!=VT_NULL)
				strValue=(LPCSTR)_bstr_t(var);
			m_CheckList.SetItemText(ItemNum,4,strValue);

			var=pRecordset->GetCollect("Note");
			if(var.vt!=VT_NULL)
				strValue=(LPCSTR)_bstr_t(var);
			else
				strValue=_T("");
			m_CheckList.SetItemText(ItemNum,5,strValue);
			pRecordset->MoveNext();
			ItemNum++;
		}
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
		return;
	}
	m_RwButton.EnableWindow(TRUE);
	m_RentButton.EnableWindow(TRUE);
	pRecordset->Close();
	pRecordset=NULL;
	delete connectionDB;
}

void CCheckDVDInfo::OnListall() 
{//显示所有DVD的信息
	// TODO: Add your control notification handler code here
	if(m_CheckList.GetItemCount()>0)
	{
		m_CheckList.DeleteAllItems();
		UpdateData(FALSE);
	}
	if(m_CName!=_T(""))
	{
		m_CName=_T("");
		UpdateData(FALSE);
	}
	CConnectionDB connection;
	if(m_pConnection==NULL)
		m_pConnection=connection.GetConnectionPtr();
	_RecordsetPtr pRecordset;
	pRecordset.CreateInstance(__uuidof(Recordset));
	CString strSQL;
	strSQL="select * from DVDInfo";
	_variant_t var;
	CString strValue;
	int ItemNum=0;
	HRESULT hr;
	try
	{
		hr=pRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(),
							adOpenDynamic,adLockOptimistic,adCmdText);
		if(SUCCEEDED(hr))
		{
			while(!pRecordset->adoEOF)
			{
				//取各个字段的值,并在列表中显示出来
				var=pRecordset->GetCollect("DVDID");
				if(var.vt!=VT_NULL)
					strValue=(LPCSTR)_bstr_t(var);
				m_CheckList.InsertItem(ItemNum,strValue);	

				var=pRecordset->GetCollect("DVDName");
				if(var.vt!=VT_NULL)
					strValue=(LPCSTR)_bstr_t(var);
				m_CheckList.SetItemText(ItemNum,1,strValue);

				var=pRecordset->GetCollect("OutDate");
				if(var.vt!=VT_NULL)
					strValue=(LPCSTR)_bstr_t(var);
				m_CheckList.SetItemText(ItemNum,2,strValue);

				var=pRecordset->GetCollect("Place");
				if(var.vt!=VT_NULL)
					strValue=(LPCSTR)_bstr_t(var);
				m_CheckList.SetItemText(ItemNum,3,strValue);

				var=pRecordset->GetCollect("DVDNum");
				if(var.vt!=VT_NULL)
					strValue=(LPCSTR)_bstr_t(var);
				m_CheckList.SetItemText(ItemNum,4,strValue);

				var=pRecordset->GetCollect("Note");
				if(var.vt!=VT_NULL)
					strValue=(LPCSTR)_bstr_t(var);
				else
					strValue=_T("");
				m_CheckList.SetItemText(ItemNum,5,strValue);

				pRecordset->MoveNext();
				ItemNum++;
			}
		}
		else
		{
			MessageBox("error");
			return;
		}
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
		return;
	}
	m_RwButton.EnableWindow(TRUE);
	m_RentButton.EnableWindow(TRUE);
	pRecordset->Close();
	pRecordset=NULL;

}

void CCheckDVDInfo::OnRent() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CAddRentInfo ARentDlg;
	int sel;
	CString strName;
	if(!m_CName.IsEmpty())
	{
		ARentDlg.m_DVDName=m_CName;
		UpdateData(FALSE);
	}
	else if((sel=m_CheckList.GetSelectionMark())>=0)
	{
		strName=m_CheckList.GetItemText(sel,1);
		ARentDlg.m_DVDName=strName;
		UpdateData(FALSE);
	}
	
	else
	{
		MessageBox("请选择要出租的DVD","提示",MB_OK);
		return;
	}
	ARentDlg.DoModal();
	
}

void CCheckDVDInfo::OnRewrite() 
{
	// TODO: Add your control notification handler code here
	CRewriteDlg RewriteDlg;
	int sel=0;
	int flag=m_CheckList.GetItemCount();
	CString strValue;
	if(flag>1)
	{
		sel=m_CheckList.GetSelectionMark();
		if(sel>=0)
		{
			strValue=m_CheckList.GetItemText(sel,0);
		}
		else
		{
			MessageBox("请选择要修改的DVD!","提示",MB_OK);
			return;
		}
	}
	else
	{
		strValue=m_CheckList.GetItemText(0,0);
	}
	RewriteDlg.dvdId=atoi(strValue);
	RewriteDlg.m_VName=m_CheckList.GetItemText(sel,1);
	RewriteDlg.m_VDate=m_CheckList.GetItemText(sel,2);
	RewriteDlg.m_VPlace=m_CheckList.GetItemText(sel,3);
	RewriteDlg.m_VNum=m_CheckList.GetItemText(sel,4);
	RewriteDlg.m_VNote=m_CheckList.GetItemText(sel,5);
	if(RewriteDlg.DoModal()==IDOK)
	{
		if(flag>1)
			this->OnListall();
		else
			this->OnCheck();
	}

}

⌨️ 快捷键说明

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