DVD出租系统【4】界面初始化,将数据库内容显示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunjikui1255326447/article/details/89021255

1、在DVDRentDlg.h中声明两个函数,分别为初始化界面函数和根据sDVDID查询DVD名字。

2、在DVDRentDlg.cpp中添加函数功能:

void CDVDRentDlg::InitListCtrl()
{
	HRESULT hr;
	_RecordsetPtr pRentRecordset;
	hr = pRentRecordset.CreateInstance(__uuidof(Recordset));
	if (FAILED(hr)) {
		MessageBox(_T("创建记录集对象失败."));
		return;
	}
	try
	{
		CString strSQL;
		strSQL = _T("SELECT * FROM tbRentInfo");
		hr = pRentRecordset->Open(_variant_t(strSQL), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
		if (SUCCEEDED(hr)) {
			_variant_t var;
			CString strValue;
			int curItem = 0;

			while (!pRentRecordset->GetadoEof()) {

				var = pRentRecordset->GetCollect((long)0);
				if (var.vt != NULL)
					strValue = (LPCTSTR)_bstr_t(var);
				m_rentInfoList.InsertItem(curItem, strValue);

				var = pRentRecordset->GetCollect(_T("sName"));
				if (var.vt != NULL)
					strValue = (LPCTSTR)_bstr_t(var);
				m_rentInfoList.SetItemText(curItem, 1, strValue);

				var = pRentRecordset->GetCollect(_T("sDVDID"));
				if (var.vt != NULL)
					strValue = (LPCTSTR)_bstr_t(var);
				m_rentInfoList.SetItemText(curItem, 2, QueryDVDName(strValue));

				var = pRentRecordset->GetCollect(_T("sDate"));
				if (var.vt != NULL)
					strValue = (LPCTSTR)_bstr_t(var);
				m_rentInfoList.SetItemText(curItem, 3, strValue);

				pRentRecordset->MoveNext();
				curItem++;
			}
		}
		else {
			MessageBox(_T("打开结果记录集失败."));
			return;
		}
	}
	catch (_com_error &e) {
		MessageBox(e.ErrorMessage());
		return;
	}

	pRentRecordset->Close();
	pRentRecordset = NULL;
}

CString CDVDRentDlg::QueryDVDName(CString& dvdID)
{
	HRESULT hr;
	_RecordsetPtr pRentRecordset;
	hr = pRentRecordset.CreateInstance(__uuidof(Recordset));
	if (FAILED(hr)) {
		MessageBox(_T("创建记录集对象失败."));
		return FALSE;
	}
	try
	{
		CString strSQL;
		strSQL = _T("SELECT * FROM tbDVDInfo where sDVDID="+dvdID);
		hr = pRentRecordset->Open(_variant_t(strSQL), m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
		if (SUCCEEDED(hr)) {
			_variant_t var;
			CString strValue;
			var = pRentRecordset->GetCollect(_T("sDVDName"));
			if (var.vt != NULL) {
				strValue = (LPCTSTR)_bstr_t(var);
				return strValue;
			}				
		}
		else {
			MessageBox(_T("打开结果记录集失败."));
			return FALSE;
		}
	}
	catch (_com_error &e) {
		MessageBox(e.ErrorMessage());
		return FALSE;
	}
	pRentRecordset->Close();
	pRentRecordset = NULL;
	return FALSE;
}

3、在MFC初始化函数中添加函数:

4、运行后界面如图:

5、数据库原型如下(根据VC驿站原教程而来):

6、本节工程地址:

链接:https://pan.baidu.com/s/1ntFtelTbB9q96wP6duqXQg 
提取码:4in7 

欢迎有任何问题留言----------------------------》

猜你喜欢

转载自blog.csdn.net/sunjikui1255326447/article/details/89021255