mfc CListCtrl分页显示数据库数据


由于工程比较大,抽出部分代码。

1、下面是查询数据库:

m_strQuerySql = GetQuerySql();//"select * from 
	if (m_strQuerySql == "")
	{
		return;
	}

	_RecordsetPtr pRes = NULL;
	pRes = DBManager::getInstance().QueryOracleData(m_strQuerySql.c_str());
	m_pRecordSet = pRes;				//类变量赋值

	long RecodCount = pRes->GetRecordCount();	//总记录数
	long FieldCount = pRes->GetFields()->Count;	//字段数

	m_nMaxCount = RecodCount;
	m_nMaxPage = RecodCount / PAGERECORD + 1;	//分页显示,总页数

2、CListCtrl分页显示:

可以根据自己的字段数修改代码。

#define PAGERECORD 50

每页显示50条

传入page以0开始。

void CDlgOracleQuery::SetPageData( int nPage )
{
	if(nPage>=0 && nPage < m_nMaxPage)
	{
		m_historyData.DeleteAllItems();
		int nIndex = (nPage) * PAGERECORD;
		CString strTemp;

		long FieldCount = m_pRecordSet->GetFields()->Count;
		_variant_t fieldValue = NULL;
		DWORD dwCount = 0;
		if (nPage == 0)
		{
			m_pRecordSet->MoveFirst();
		}
		else
		{
			m_pRecordSet->MoveFirst();
			m_pRecordSet->Move(nIndex);
		}

		while (!m_pRecordSet->EndOfFile)
		{
			for (int j = 0;j < FieldCount;j++)
			{
				fieldValue = m_pRecordSet->GetCollect(_variant_t((long)j));
 				if(fieldValue.vt==VT_NULL || fieldValue.vt==VT_EMPTY)
 				{
 					strTemp = "0";
 
 				}
				else
				{
					strTemp = (LPCSTR)_bstr_t(fieldValue);
					strTemp.TrimRight();
				}
				switch (j)
				{
				case 0:
					{
						m_historyData.InsertItem( dwCount, strTemp);
						break;
					}
				case 1:
					{
						m_historyData.SetItemText(dwCount, j, strTemp);
						break;
					}
				case 2:
					{
						m_historyData.SetItemText(dwCount, j, strTemp);
						break;
					}
				case 3:
					{
						m_historyData.SetItemText(dwCount, j, strTemp);
						break;
					}
				default:
					break;
				}
			}
			m_pRecordSet->MoveNext();
			dwCount++;
			if (dwCount == PAGERECORD)
			{
				break;
			}
		}
	}
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值