QQ登录

只需一步,快速开始

278上位机VC MFC使用DAO实现数据库记录排序

[ 复制链接 ]

278上位机VC MFC使用DAO实现数据库记录排序

278上位机VC MFC使用DAO实现数据库记录排序

278上位机VC MFC使用DAO实现数据库记录排序


功能展示

在用DAO进行编写数据库程序进行检索数据库记录时,有时要根据不同的检索需要,快速打开想要内容,这就得根据不同字段实现数据库记录的排序,我们当前实现演示通过三种方法,按学号,姓名年龄排序实现对数据库记录集的排序,将显示在列表控件中,效果如图
要点提示
1.我们可以指定数据表中的一个或多个列作为排序的基础,而且可以指定排列规则为长或降序即ASC
或DESC,前者为默认值,

2.若指定使用两个列作为排序的基础,则记录集将先根据第一个列进行排序,然后再按第二个列进行
排序,当框架为记录集的SQL查询添加ORDER BY从句时,该从句将控制选择的顺序
3.要为记录对象指定排序顺序,则应该:
创建一个新记录集对象,或准备调用一个已打开的记录集对象的REQUERY函数。
设置记录集对象的M_STRSORT数据成员,它包含了ORDER BY从句的内容,但是并不包括ODER BY关键字
调用新记录集对象的OPEN函数或调用已打开的记录集对象的REQUERY函数

4.如果 在调用OPEN函数时传递定制的SQL字符串进行查询,则如果 在该字符串中具有ORDER BY从句,就不应该再使用m_strsort定制排序,此外如果记录集是基于或标定义的,就不能通过设置m_strsort来达到排序的目的
实现功能
1.新建基于单文档应用程序,在创建过程中选择基于DAO,数据库文件选择例程根目录数据库文件,表选择course,具体的创建操作过程可以参考视频演示;

2.根据例程界面添加一列表控件ID为IDC_LIST,并初始化此列表控件
  1. //<>初始化列表控件
  2.         CListCtrl *pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
  3.         pListCtrl->DeleteAllItems();
  4.         pListCtrl->ModifyStyle(0,LVS_REPORT,0);
  5.         pListCtrl->InsertColumn(0,"学号",LVCFMT_CENTER,50);
  6.     pListCtrl->InsertColumn(1,"姓名",LVCFMT_CENTER,50);
  7.     pListCtrl->InsertColumn(2,"年龄",LVCFMT_CENTER,40);
  8.     pListCtrl->InsertColumn(3,"课程",LVCFMT_CENTER,70);
  9.     pListCtrl->InsertColumn(4,"评价",LVCFMT_CENTER,50);
复制代码
3.添加三个按钮控件,按学号排序,按姓名排序,按年龄排序关联点击函数
  1. void CGkbc8View::OnBid() //按学号排序
  2. {
  3.         m_pSet->m_strSort="id DESC";
  4.         m_pSet->Requery();
  5.         Display();
  6. }
  7. void CGkbc8View::OnBname() //按姓名排序
  8. {
  9.         m_pSet->m_strSort="name DESC";
  10.         m_pSet->Requery();
  11.         Display();
  12. }
  13. void CGkbc8View::OnBage() //按年龄排序
  14. {
  15.         m_pSet->m_strSort="age DESC";
  16.         m_pSet->Requery();
  17.         Display();
  18. }
复制代码
4.三个按钮都调用有我们自定义的函数Display(),所以最后我们得实现这一函数
  1. void CGkbc8View::Display()
  2. {
  3.         CListCtrl *pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST);
  4.         pListCtrl->DeleteAllItems();

  5.         if(!m_pSet->IsOpen())
  6.                 m_pSet->Open();
  7.         m_pSet->MoveFirst();
  8.     CString str;
  9.         int nItem;
  10.         while(!m_pSet->IsEOF())
  11.         {
  12.         str.Format("%d",m_pSet->m_id);
  13.         nItem=pListCtrl->InsertItem(0,str);
  14.                 pListCtrl->SetItemText(nItem,1,m_pSet->m_name);
  15.                 str.Format("%d",m_pSet->m_age);
  16.                 pListCtrl->SetItemText(nItem,2,str);
  17.                 pListCtrl->SetItemText(nItem,3,m_pSet->m_course);
  18.                 pListCtrl->SetItemText(nItem,4,m_pSet->m_comment);
  19.                 m_pSet->MoveNext();
  20.         }
  21.         m_pSet->MoveFirst();
  22. }   
复制代码
我们来演示下整个功能实现 过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:278.上位机VC MFC使用DAO实现数据库记录排序.zip 
文件大小:42.83 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索