当前位置:松语文学 > 其他类型 >VC++_6.0程序设计从入门到精通最新章节 > VC++_6.0程序设计从入门到精通TXT下载
错误举报

第 73 章

  辅助

  功能编写代码。

  (3)为附加功能编写代码

  首先,当用户单击List Box 控件中的某一表项时,在DataGrid 控件中会相应地出现此表

  中所有的记录。当用户在List Box 中单击一项时,会激发LBN_SELCHANGE 消息,下面为

  此消息添加处理函数。打开“ClassWizard”对话框,在“Class ncom”下拉菜单中选择

  CAdoTestView,在“Object Ids”下拉列表中选择IDC_LISTBOX,在“Messages”下拉列表

  中选择LBN_SELCHANGE,单击“Add Function”,采用默认的函数名,然后依次单击“OK”

  和“Edit Code”按钮,定位到函数CAdoTestView::OnSelchangeListbox(),代码如下:

  void CAdoTestView::OnSelchangeListbox()

  {

  // TODO: Add your control notification handler code here

  //得到鼠标单击项在List Box 中的索引值

  int index = m_ListBox.GetCurSel();

  //根据索引值得到表项的名字

  m_ListBox.GetText(index, m_strTableNcom);

  //构造SQL 查询语句

  m_strSQL = "select * from [" + m_strTableNcom + "]";

  //将变量值保存到控件中

  UpdateData(FALSE);

  //进行查询

  OnExecute();

  }

  接下来实现单击某列进行排序的功能。在程序中要用到两个类:CColumn 和CColumns。

  在CAdoTestView.cpp 的开头,需要加入语句#include "column.h" 和 #include "columns.h",将

  头文件包含进来。

  当在DataGrid 中单击某列时,会激发HeadClick 消息。下面为此消息添加响应函数:打

  开“ClassWizard”对话框,在“Class ncom”下拉菜单中选择CAdoTestView,在“Object Ids”

  下拉列表中选择IDC_DATAGRID,在“Messages”下拉列表中选择HeadClick,单击“Add

  Function”,采用默认的函数名,然后依次单击“OK”和“Edit Code”按钮,定位到函数void

  CAdoTestView::OnHeadClickDatagrid(short ColIndex),代码如下:

  void CAdoTestView::OnHeadClickDatagrid(short ColIndex)

  {

  // TODO: Add your control notification handler code here

  枫叶文学网www.fywxw.com

  Visual C++ 6.0 程序设计从入门到精通

  ·366·

  //得到DataGrid 中表示各列信息的类

  CColumns cols = m_DataGrid.GetColumns();

  //此参数用来得到具体某一列

  VARIANT index;

  //值为index

  index.intVal = ColIndex;

  //类型为整型

  index.vt = VT_I4;

  //得到单击列

  CColumn col = cols.GetItem(index);

  //得到此列的名字

  m_strTableNcom = col.GetCaption();

  //排序必须是在已经建立连接的情况下

  if(m_Connection != NULL)

  {

  //排序还必须在表名存在的情况下

  if(m_strTableNcom.GetLength() != 0)

  {

  //得到查询语句的长度,后面会用到

  int nOriginalLength = m_strSQL.GetLength();

  //构造新的查询语句

  CString strTmp = " order by [" + m_strTableNcom + "]";

  if(isDesc)

  {

  strTmp = strTmp + " desc";

  isDesc = FALSE;

  }

  else

  isDesc = TRUE;

  m_strSQL += strTmp;

  //将变量值保存到控件中

  UpdateData(FALSE);

  //对新的查询语句进行查询

  OnExecute();

  //恢复原查询语句,这样做是为了再单击别的列,可以对别的列进行排序

  m_strSQL.Delete(nOriginalLength, strTmp.GetLength());

  }

  }

  }

  至此,所有的代码均已编写完毕。这段代码已经实现了对数据库的基本cāo作。可见,用

  枫叶文学网www.fywxw.com

  第12 章 数据库开发

  ·367·

  ADO 技术进行数据库开发非常方便,且简单易学。同时,DataGrid 控件的使用可以使得程序

  员不再为数据的显示做很多繁琐的事情,从而大大简化了代码的编写。

  (4)运行程序

  对程序编译、链接,然后运行(这里要注意,在编译的时候会出现如下的警告:

  msado15.tlh(403) : warning C4146: unary minus operator applied to unsigned type, result still

  unsigned。对此微软在MSDN 中作了说明,并建议不要理会这个警告),可以看到运行界面如

  图12-26 所示。

  图12-26 程序运行界面

  单击“数据源”按钮,打开如图12-27 所示的“数据链接属xìng”对话框。单击“提供者”

  选项卡。

  图12-27 “数据源链接属xìng”对话框 图12-28 连接Access 数据

  本例中,用来测试的数据库是在Access 2002 下建立的,在这里要选择“Microsoft Jet 4.0

  OLE DB Provider”,如果是在Access 97 下建立的,则要选择“Microsoft Jet 3.51 OLE DB

  枫叶文学网www.fywxw.com

  Visual C++ 6.0 程序设计从入门到精通

  ·368·

  Provider”,如果是其他类型数据库,也有相应的Provider 可以选择。然后单击“下一步”按

  钮,对话框如图12-28 所示。在这里数据库选择第2 节建好的数据库Info.mdb,单击“确定”

  按钮,数据源设置完成。可见,利用COM 组件DataSourceLocator 设置数据源是非常方便的,

  而在编写程序的时候,也只需要一个PromptNew()函数即可。

  设好数据源后回到原运行界面,会发现在第一个Edit 控件栏中已经填好了连接语句。单

  击“连接”按钮,在左侧的List Box 控件栏中会出现Info.mdb 数据库中的“Contact”和“Personal”

  两个表的名字,如图12-29 所示。

  图12-29 刚连接时的界面

  如果想看表Personal 的内容,只需要用鼠标左键单击List Box 控件栏中的“Personal”项,

  则在DataGrid 控件中便会显示出表Personal 中的所有记录,如图12-30 所示。

  图12-30 显示表Personal 中的所有记录

  如果需要记录中的详细资料,如王明的联系方式,可利用第3 节介绍的SQL 语句,只需

  要在第2 个Edit 控件栏中填写select * from Contact where Ncom = ’王明’,然后单击“cāo作”

  枫叶文学网www.fywxw.com

  第12 章 数据库开发

  ·369·

  按钮,则在DataGrid 控件中会显示出表Contact 中关于王明的记录,如图12-31 所示。

  图12-31 利用SQL 语句进行数据库cāo作

  最后可以测试一下排序功能。先显示出表Personal 中的所有记录,然后在DataGrid 控件

  的“Birthday”列上单击鼠标左键,可以看到按出生年月排序后的结果,如图12-32 所示。

  图12-32 对某列排序后的结果

  用户还可以利用第3 节介绍的其他SQL 语句对数据库进行cāo作。当所有cāo作完成时,单

  击“断开”按钮断开连接,然后单击“退出”按钮退出程序。

  本程序代码量只有大概300 行,但是已经实现了对数据库的基本cāo作。由此可见,利用

  ADO 进行数据库开发简单方便,同时DataGrid 控件的使用也大大简化了编程。相信通过这

  个简单的例子,读者已经对ADO 技术有了更深一步的了解。

  枫叶文学网www.fywxw.com

  Visual C++ 6.0 程序设计从入门到精通

  ·370·

  12.8 本章小结

  本章介绍了数据库的基本概念和数据库开发的几种主要技术,接着较为详细地介绍了

  Access 数据库的创建和维护以及SQL 语句的基本知识,最后,用一个详细的实例介绍了如何

  利用ADO 技术进行数据库开发。本章所用实例都简单易懂,希望读者学习完本章知识后,

  能够对数据库开发有一个全面的了解,并能够利用ADO 技术进行简单的数据库开发。

  枫叶文学网www.fywxw.com

  更多精彩,更多好书,尽在枫叶·文学网(www.fywxw.com)

  松语文学免费小说阅读_www.16sy.com