mysql数据库使用clistctrl显示怎么样实现分页 如题,怎么样实现上一页,下一页,高效率执行显示? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下图是我做的实例:(不知道能不能显示出来)根据页码条件取数据 CString sqlstr; sqlstr.Format( L"SELECT * FROM datatable ORDER BY updatedate LIMIT %i, %i;", m_nCountOfPage * m_nPageNum, m_nCountOfPage);填充 int num = m_nCountOfPage * m_nPageNum + 1; ds.MoveFirst(); for( int i = 0; !ds.IsEOF(); i++, num++ ) { InsertItem( i, ds.m_ID ); CString str, str2, str3; str.Format(L"%i", num); SetItemText( i, 1, str ); SetItemText( i, 2, ds.m_number ); SetItemText( i, 3, ds.m_name ); SetItemText( i, 4, ds.m_sexstr ); if( (ds.m_birthday.m_status != COleDateTime::valid) || (ds.m_birthday.m_dt == 0) ){ str = _T(""); str2 = _T(""); } else { str = ds.m_birthday.Format( _T("%Y-%m-%d") ); str2.Format( L"%i", ds.m_age); } SetItemText( i, 5, str ); SetItemText( i, 6, str2 ); if( (ds.m_regday.m_status != COleDateTime::valid) || (ds.m_regday.m_dt == 0) ) str = _T(""); else str = ds.m_regday.Format( _T("%Y-%m-%d") ); SetItemText( i, 7, str ); if( (ds.m_scanday.m_status != COleDateTime::valid) || (ds.m_scanday.m_dt == 0) || ds.m_scancount == 0 ) // 没有扫描次数时,不显示扫描日期。 str = _T(""); else str = ds.m_scanday.Format( _T("%Y-%m-%d") ); SetItemText( i, 8, str ); str.Format( L"%i", ds.m_scancount ); SetItemText( i, 9, str ); SetItemText( i, 10, ds.m_note ); //SetItemData(i, i); ds.MoveNext(); } 用 virtual list ctrl 实现。http://www.codeproject.com/Articles/7891/Using-virtual-lists 每次sql语句获取对应数目的数据从数据库,然后显示到ListCtrl 如果CListCtrl显示是list的数据,用上一页,下一页来控制每一页显示3条数据,怎么控制CListCtrl的显示? 从哪发送LVM_SETITEMCOUNT设置SetItemCount(3)来设置每一页显示的条目,数据在哪里刷新? 沙子和水如何画? mfc 电子邮件发送与接收? 一个进程 怎样利用多核心CPU 应用层组播、IP组播的问题 DWORD WINAPI ThreadProc()里面的WINAPI是用来做什么的? 一幅图像与一个模板进行卷积,是怎么定义的????? 请帮忙!!(在线) 串口通信: 如何实现全双工,就是同时对一个口进行读和写? 如何使用安裝程序将原程序打包后在目標机上安裝 各位大侠,帮帮我吧! 关于 CreateCompatibleDC 函数的问题,求教! (70分)句柄无效
根据页码条件取数据
CString sqlstr;
sqlstr.Format( L"SELECT * FROM datatable ORDER BY updatedate LIMIT %i, %i;",
m_nCountOfPage * m_nPageNum,
m_nCountOfPage);填充
int num = m_nCountOfPage * m_nPageNum + 1;
ds.MoveFirst();
for( int i = 0; !ds.IsEOF(); i++, num++ )
{
InsertItem( i, ds.m_ID );
CString str, str2, str3;
str.Format(L"%i", num);
SetItemText( i, 1, str );
SetItemText( i, 2, ds.m_number );
SetItemText( i, 3, ds.m_name );
SetItemText( i, 4, ds.m_sexstr );
if( (ds.m_birthday.m_status != COleDateTime::valid) || (ds.m_birthday.m_dt == 0) ){
str = _T("");
str2 = _T("");
}
else
{
str = ds.m_birthday.Format( _T("%Y-%m-%d") );
str2.Format( L"%i", ds.m_age);
}
SetItemText( i, 5, str );
SetItemText( i, 6, str2 );
if( (ds.m_regday.m_status != COleDateTime::valid) || (ds.m_regday.m_dt == 0) )
str = _T("");
else
str = ds.m_regday.Format( _T("%Y-%m-%d") );
SetItemText( i, 7, str );
if( (ds.m_scanday.m_status != COleDateTime::valid) || (ds.m_scanday.m_dt == 0) || ds.m_scancount == 0 ) // 没有扫描次数时,不显示扫描日期。
str = _T("");
else
str = ds.m_scanday.Format( _T("%Y-%m-%d") );
SetItemText( i, 8, str );
str.Format( L"%i", ds.m_scancount );
SetItemText( i, 9, str );
SetItemText( i, 10, ds.m_note );
//SetItemData(i, i);
ds.MoveNext();
}