1、河北大学2009届本科生毕业论文(设计)通讯录管理系统设计与实现摘 要随着通讯科技的发展,手机的应用已经相当普遍。面对海量的通讯录信息,做不到信息批处理的手机自带通讯录功能越来越难担重负;而面对丢失手机造成的人脉损失,手机通讯录信息备份能力的提升已成为一个备受关注的问题。在计算机应用得到普及的今天,人们很容易想到使用计算机来解决这些问题,因此,关于手机通讯录的信息管理系统便应运而生了。通讯录管理系统是一种典型的信息管理系统(MIS),其主要开发包括前端应用程序和后台数据库两个方面。前端应用程序的开发力求做到功能完备、操作简易、界面美观;而后台力求建立成为一个数据一致性、完整性强和数据安全性好的
2、数据库。本文以通用的通讯录管理系统为实例,运用Visual Basic.Net和Microsoft Office Access进行程序设计,讲述如何开发通讯录管理系统。此设计具有很强的实用性,使用者可以根据具体情况稍加修改,就可以把它应用到实际生活中。这个设计除了实现通讯录的常规功能外,还实现了批量化信息处理,自动与手动备份,群发邮件,图片存储等功能。面对众多手机内信息字段的多样化,本系统还特别开发了对字段内容修改的功能,可以把不常用的字段修改为有用字段。关键词:手机通讯录 MIS Visual Basic.Net Microsoft Office Access ABSTRACTWith th
3、e development of communication technology; the mobile has been used quite common. Facing the magnitude of the directory information, without batch processing mobile directory is hard to burden, While facing the loss of social information network caused by the mobile directory loss, backup function a
4、lso needs to ascend to a new level. With computer application popularizing more and more popular today, it is easy to think to use computer to solve these problems, therefore mobile directory information management system comes true.Address book management system is a typical application of manageme
5、nt information system (MIS), which mainly includes front application program development and backstage supporters database. The front application program development intends to Full-featured, user-friendly, interface aesthetics; the backstage supporters database is a database which contains data con
6、sistency ,integrality and security . This paper discusses the directories management system in a general way, using Visual B and Microsoft Office Access for program design, describes how to develop directories management system. This design has a strong practicability, it can be applied to actual ne
7、eds when user modify a little. The design accomplished the conventional function of directory, and also realized other functions such as batch information processing , automatic and manual back-up, mass email, image storage, etc. Facing of the many mobile phones filled with the diversity of informat
8、ion, the system also has developed a function of modification to the fields, which can make uncommon fields common.Key words: Directory MIS Visual B Microsoft Office Access目 录一 引言1二 需求分析22.1功能需求分析22.2数据需求分析22.2.1相关实体22.2.2实体用例图32.3性能需求分析32.4界面需求分析32.4.1前端显示页面42.4.2登录界面5三 系统总体设计63.1功能总体设计63.1.1用户功能设计
9、63.2数据库ER图设计93.3数据库具体设计93.3.1数据库表的设计如下9四 系统详细设计及实现144.1技术背景144.1.1开发环境的选择144.1.2应用技术的选择144.1.3工具的选择154.2各模块功能详细设计及实现154.2.1用户登录模块154.2.2主界面初始化显示模块164.2.3添加修改成员模块184.2.4成员组树选择查询模块194.2.5搜索查询模块214.2.6成员与成员组之间关系变更224.2.7属性关系变更:244.2.8主显示区显示变更多页面显示区信息变更:254.2.9电子邮件群发设置:264.2.10图片存储设置:274.2.11备份设置:294.2.
10、12导入设置:30五 测试315.1模块测试315.1.1用户登录测试315.1.2联系人信息修改测试325.1.3输入式查询模块测试345.1.4成员关系变更测试345.1.5测试邮件群发功能355.2测试结果分析36六 总结37谢 辞38参考文献39一 引言随着通讯技术的发展,手机已经在我们的生活中占据了重要的地位,是我们进行交流、信息获取与交换的便利工具,使通讯的更方便、更快捷.早在2008年的11月,我国的手机用户已经突破了6亿.当海量的联系人信息常使我们的手机不堪重负;当丢失手机时,失主因为丢失了手机中的联系人信息,而错过诸多机会,令人痛心不已.使用计算机管理手机通讯录信息已经被大多
11、数人所接受.使用计算机通讯录管理软件是非常明智的选择,另外现在网络上通讯录软件也有很多了,但功能上多趋于简单化,因此一个功能完善,便于操作,人性化界面的通讯录开发就显得尤为必要了.通过通讯录管理系统的建立可以方便人际关系的维护与管理,一个良好的通讯录,还起到备忘录的功能,随时提醒用户需要注意的各种人际交流事项,为做好人际沟通建立起一个坚实的基础.如第一次见面时所发现的信息、对方兴趣爱好、名片模块套用等,可以实现人际关系的软着陆,将一些与人交际时获得的新信息存入该系统,便于随时翻阅.做好人际沟通在社会上会赢的很大人际优势,在以后工作生活中提高效率.本文记述了通讯录系统的整个开发过程,包括1系统分
12、析、系统设计、系统实现等方面.我本着以人为本的思想,综合运用在计算机科学与技术专业学到的各种知识,实现对录信息的增加、删除、修改、查询等功能,以单文档界面和多文档界面两种形式实现.还实现了批量化信息处理;自动与手动备份;群发邮件;图片存储;支持多种格式的导入等功能.面对众多手机内信息重点的多样化,本系统还特别实现了对字段内容修改的功能,可以把不常用的字段修改为有用字段.该软件具有方便性、可靠性、寿命长、可行性、安全性的优点.同时该软件用到了多文档界面的实现、窗口之间的参数传递等技术.0 河北大学2009届本科生毕业论文(设计)二 需求分析需求分析是软件定义时期的重要阶段,任务是确定系统必须完成
13、哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求.以下通过功能需求、数据需求、性能需求、界面需求四方面进行分析.2.1功能需求分析手机中的通讯录信息有可能数量很大,再把手机信息导入计算机时手工录入则相当繁琐;有可能因为丢失手机而把重要的通讯录信息全部丢失;在查找某个人信息时,有可能记不起该人的具体姓名,可以从各种字段对信息搜索,模糊查询,首字母查询. 因此在实现手机通讯录已有功能的同时,还要实现以下几个功能.1.要能够海量存储成员信息:联系人信息量过大引起的需要计算机进行优化性管理,因此软件应当比手机的存储量高一个或多个数量级.2.要能够导入导出:目的在于管理手机的通讯录,只要能从手
14、机导出的格式尽量支持.3.要支持智能备份:能够完成手工备份与自动备份.备份功能使手机丢失后不会再丢失令人痛心想的人脉,而且以防操作不当引起数据的流失.4.要支持智能模糊查询(首字母查询、模糊查询、二次查询):查询方式意味着程序操作的复杂度,查询方式多样化,可以使得软件的操作性增强很多.5.要支持邮件群发:手机不方便发电子邮件,而软件在计算机上,理所应当要增加一些手机上完成不了的功能.2.2数据需求分析为了把系统的数据要求清楚、准确地描述出来,需要建立一个概念性的数据模型,按照用户的要求观点对数据建立模型,用来描述从用户角度看到的数据,反映使用者的现实使用环境,它包括三种相互关联的信息:实体,实
15、体属性,实体彼此间相互连接的关系.以下分别介绍.2.2.1相关实体根据对系统功能的分析,得到系统所涉及的实体有:系统模块(系统初始化信息、系统调用信息、多页面操作信息)信息模块(用户信息、联系人信息、组关系信息、简历信息、社会关系信息、报表).1.系统模块主要是对系统初始化和使用过程中操作:(1)系统初始化模块:系统初始化时所需要调用的信息.(2)系统调用模块:系统使用中所调用的信息(3)多页面操作模块:系统在对多页面选项卡操作时调用的信息.2.信息模块主要是对通讯录中联系人信息的操作:(1)用户模块:对用户信息表,对密码设置.(2)联系人信息模块:对联系人信息添加,修改,删除.(3)组关系模
16、块:对联系人所属的组进行添加删除(默认组属于根节点).(4)简历信息模块:对联系人与简历做关联,添加、修改、删除简历.(5)社会关系信息模块:对联系人与社会关系做关联,添加、修改、删除简历.(6)报表模块:对通讯录中联系人信息做筛选,整理出报表.2.2.2实体用例图图2-1 实体用例图2.3性能需求分析软件名称:通讯录管理系统支持操作系统:Windows2000, Windows XP等软件架构:C/S(Client/Server)软件/数据库模式 适用范围:导出通讯录格式为(csv,xls,mdb)的手机用户数据库服务器:access运行方式:通过软件运行稳定性:运行时间不限,数据库服务器自
17、动每三天备份一次,用户可以手动随时备份安全性:自动去除数据库中不安全、不符合标准的数据 速度:取决于计算机性能空间:系统占用空间=7MB,数据库=1G操作:便捷2.4界面需求分析 软件界面尽量美观实用,使用户一眼就看明白各个模块的意义和使用方法.做到简单易行,容易理解,便于操作.2.4.1前端显示页面(1)布局如图2-2所示.A标题栏B菜单栏C快捷菜单栏D成员组信息栏F搜索栏H主显示栏E多页面显示栏图2-2 前端显示页面(2)包含内容l 系统横幅标题栏l 导航菜单栏l 快捷按钮栏l 成员组信息栏l 多页面显示栏l 搜索栏l 注册显示栏l 主显示表栏(3)显示功能l 静态显示l 静态显示l 静态
18、可选择模式显示l 数据与后台相连,动态显示l 数据与后台相连,动态显示l 用户使用l 剩余使用次数显示l 数据与后台相连,动态显示2.4.2登录界面AB图2-3 前端登录界面1.布局如图2-7所示.2.包含内容(1)登录界面(2)登录验证窗口3.显示功能(1)显示背景、密码输入框,点击登录按钮后经数据库验证合格后,进入程序38三 系统总体设计通过需求分析等前期工作,在系统总体设计阶段对系统进行初步设计,站在全局高度上,花较少成本,从较抽象的层次上分析系统的实现方案和软件结构1,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系,从而开发出较高质量的软件系统.系统可通过软件进
19、行访问数据库,通过软件的表格读取数据.系统的主要功能包括:管理通讯录、群发邮件、备忘录、统计报表等.3.1功能总体设计3.1.1用户功能设计用户功能结构如图3-3所示图3-1 用户主要操作活动图图3-2 用户次要操作活动图各模块功能总体设计如下:1.登录:个人通讯录,自己用所以只设立一个用户,登录窗口有1个文本输入框用于输入密码.点击登录按钮后会利用验证函数检验密码是否按要求完整填写.将符合要求的密码传送到数据库用户表,该文件会从表中读取密码信息,验证用户填写得密码是否与数据库中的一致,如果一致则允许用户进入软件实体界面,否则返回登录窗口.2. 浏览信息:初始显示所有用户.模块h主显示表栏以3
20、种形式列出联系人的信息.(1)列表的形式显示用户的各项信息,包括姓名、性别、政治面貌、出生日期、工作单位、学历、职称、等项.可以在“高级”“住显示区属性”中设置添加与移除(2)头像的形式显示用户,由于提醒自己,是名字和人可以清楚地对上号(3)文件夹形式显示用户,节省空间一版内可以显示百余个联系人3.信息修改:双击用户名可以进入用户信息面板,可以获得所有用户个人信息.4.在多页面显示栏e除了可以得到用户的个人信息,还有用户的社会关系,工作经历.由其他表提供的,不便于显示在主显示区的内容.5.在搜索栏可以进行精确查询和模糊查询两项功能精确查询:输入确切的信息获得结果模糊查询:输入首字母查询结果,例
21、如输入ly可以查到李留玉(lly),李玉林(lyl),刘勇(ly)6.成员组信息栏:根据选定的成员组主显示区显示其成员,一个成员可以同时属于多个组,每个组可以用有多个成员,选择父组显示所有子组里的成员7.程序功能:(1)密码设置:原始密码设置为123,可以给软件设置开机密码,也可以不用密码直接登录.(2)开始时组树展开模式:可以显示所有子组,也可以开始时之展开第一层子组(3)导入导出:可以从excel文档和csv文档导入联系人信息,导入时把文件中的字段与程序所包含的字段一一对应添加.导出为统一格式csv(4)数据库操作:包括备份数据库,从数据库中还原数据,压缩整理数据库(5)群发邮件:所有在电
22、子邮件处有内容的用户,皆进入列表备选.(6)改变选定成员从属关系:删除某成员与某关系的连接(7)添加简历与社会关系记录:添加简历与社会关系,这些比较大,存放在另一个表中.(8)设置各分区所显示内容:l 可以设置主显示区显示的字段,可以设置多页面显示区各分页面的显示字段.在个性化属性里,还可以把不用的属性字段修改为需要的字段.l 系统配色方案可以修改各分区的底色,使页面更加多姿.l 电话串口设置(本想添加网络电话功能,没有成功).l 邮箱设置,设置用户邮箱控制群发邮件时的发件人信息.l 自动备份设置,根据给定的时间自动备份数据库.l 统计报表,根据一定的规则选择使用报表,并用excel文件导出.
23、3.2数据库ER图设计ER图在设计数据库时提供了直观的上的描述.图3-3 数据库E-R图3.3数据库具体设计3.3.1数据库表的设计如下1.系统权限表(system):用于记录系统的登录信息.当用户登录管理系统时系统读取该表中的信息进行初始化;当用户修改系统登录信息后,将会对此表进行更新.表的表项如表3-1所示.表3-1 系统初始化表(system)列名数据类型非空约束描述Idint是主键IdValuevarchar(20)否登录信息Memovarchar(20)否备注2.操作填充表(fieldconfig):本表用于获得备选信息.当用户要对通讯录字段进行修改时,将调用该表中记录,调用字段时查
24、询字段属于哪张表的第几项,使应用程序调用时简化.表中记录了各重要表的字段及其默认信息.该表项如表3-2所示. 表3-2 操作填充表(fieldconfig)列名数据类型非空约束描述Idint是主键用户IdTableidInt是字段处于哪张表ItemidInt是字段在该表的第几行ItemnameChar(20)否字段名WidthInt是显示时宽度PicklistChar(20)list否备选选项3.多页操作表(pageconfig):本表用于记录多页面显示栏包含的数据关系.用户登录系统后可以从“高级”中的“各页面属性”中获得修改权限,它们都是从此表中调用的;用户设置个页面字段时,将同时更新这个表
25、.表的表项如表3-5所示.表3-3 多页面操作表(pageconfig)列名数据类型非空约束描述Idint是主键IdCaptionvarchar(40)否标题Visiablechar(1)是是否可选Itemidsvarchar(40)否选项List4.联系人信息表(member):本表用于记录联系人信息.本表是用户通讯录中的最主要表格,导入通讯录信息时向本表导入.本表需要随用户对程序的操作而对表进行实时更新.为了使手机内最多的字段可用,该表力求全面.为了便于操作,列名在建立时使用隐式列名,本表中的字段名称可以根据用户需要而更改,列名所对应的内容不一定,可修改的列名不赋予有效列名,便于系统调用时
26、操作.表3-4 联系人信息表(member)列名数据类型非空约束描述Item0varchar(10)是姓名Item1varchar(2)否性别Item2varchar(16)否民族Item3varchar(10)否籍贯Item4Date否生日Item5varchar(20)否政治面貌Item6varchar(20)否学历Item7varchar(20)否爱好Item8varchar(30)否工作单位Item9Date否从业时间Item10Date否入党时间Item11varchar(20)否职务Item12varchar(20)否职位Item13varchar(20)否职称Item14varc
27、har(20)否级别Item15varchar(20)否通讯地址Item16varchar(6)否邮政编码Item17varchar(14)否住宅电话Item18varchar(14)否办公电话Item19varchar(20)否毕业院校Item20varchar(14)否手机1Item21varchar(14)否手机2Item22varchar(14)否手机3Item23varchar(20)否电子信箱Item24varchar(20)否昵称Item25Int(14)否QqItem26varchar(20)否msnItem27varchar(14)否办公电话Item28varchar(20)
28、否未使用2UpdatedInt是自动更新新建Groupids备注否机填关系组号Deleteid备注否删除标记ImgeidInt否头像idSpellvarchar(20)是首字母Id自动编号是主键联系人id注:电话号码有的需要区号例如0312,在本系统中需要保存首位0与特殊字符号“-”因此电话号码用字符型存储.5.联系人组表(groups):记录联系人所属的组,该组与根节点的关系.表项如表3-6所示. 表3-5 联系人组表(groups)列名数据类型非空约束描述Idint是主键组IdLinkidint是外键父组idOrdint是第几个NameVarchar(20)是组名Memoint否备注6.简
29、历表(resume):记录联系人的简历信息.当点击多页面栏选项卡中的简历时获得选中联系人的简历信息,并从该表中读取相应信息,进行显示;用户修改简历信息时,会同时更新表.表项如表3-6所示.表3-6 简历表(resume)列名数据类型非空约束描述Idint是主键导航IdLinkidvarchar(40)是外键谁的简历BegintimeDate否起始时间EndtimeDate否终止时间Jobsetvarchar(30)否单位Jobhightvarchar(30)否职位Seemenvarchar(20)否证明人Item5varchar(30)否备注7.社会关系表(family):记录联系人的社会关系
30、信息.当点击多页面栏选项卡中的社会关系时获得选中联系人的社会关系信息,并从该表中读取相应信息,进行显示;用户修改简历信息时,会同时更新表.表项如表3-6所示.表3-7 社会关系表(family)列名数据类型非空约束描述Idint是主键IdLinkidInt是外键关联idItem0varchar(20)否关系Item1varchar(20)否姓名Item2varchar(2)否性别Item3Date否出生日期Item4varchar(20)否单位Item5varchar(20)否备注8.统计报表(stat):筛选记录内部的信息.用户登录系统后自定义筛选过程,而文件信息存储在此表中;用户修改、添加
31、、删除筛选文件信息时会同时更新该表.表的表项如表3-7所示.表3-8 统计报表(stat)列名数据类型非空约束描述Idint是主键IdModeInt是文件名称Namevarchar(20)是标题Expressvarchar(200)是筛选原则Excelvarchar(60)是Excel文件名Memovarchar(60)是备注四 系统详细设计及实现详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,设计出程序的蓝图,不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简单易懂.1在实现阶段要根据详细设计阶段设计出的处理过程进行编码,实现系统.以下将详细论述这两个
32、阶段的工作.4.1技术背景4.1.1开发环境的选择系统采用的开发环境为Windows+ + Microsoft Office Access.Windows系统是现在大多数计算机用户所使用的操作系统,对软件,尤其是大型商业软件及多媒体软件(包括游戏)的支持一直是Windows系统的强项,也是大多数人选择它的一个主要原因.另一方面它是图形界面操作系统,我们可以通过窗口、图标和菜单对系统进行操作,所以使用起来比较方便.面向对象的编程在.NET世界是不可避免的.随着VB.NET的推出,微软已经赋予了VB程序员多年来长期要求的所有特性,即一种真正的面向对象的编程语言.VB.NET与COM实体的捆绑支持更
33、好一些.VB.NET使用IDE中的后台编译 VB.NET背景编译程序/句法检验器非常复杂,而且很客气地指出你的错误.从某些方面看,它能更准确地告诉你如何修改你源代码中的错误.Microsoft Office Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一.它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务.4.1.2应用
34、技术的选择 系统应用V技术进行开发.V的脚本语言是Visual Basic语言,它具有Visual Basic的一切特性,同时V也支持现在大部分平台.Visual Basic发展成vb.NET后,也成为一种完全的面向对象的编程语言.有几个好的原因导致了这个转变.面向对象编程有几个优点,比如:易于进行代码维护,可扩展性好,代码重用技术.这些优点是过程编程所没有的.自从功能被压缩到一个类中并且类作为一个独立的实体存在,提供一个类库就变得非常容易了,事实是任何一个.NET Framework程序员都可以使用.NET Framework类库,.NET Framework类库是一个有丰富类的类库,提供很
35、强的功能,更可贵的是你可以很容易的扩展这些功能来满足你的需要.当写.NET应用程序时,需要写类和其他数据类型.为使应用程序更有条理,组织性更好,需要将他们聚合进名字空间中,这也是微软用.NET Framework类库的原因.微软.NET Framework sdk文档中的.NET Framework类库中包含了80多个名字空间,包括常用的重要的名字空间,如System, System.IO, System.Drawing, System.Windows.Forms等等.举例而言,在Employee类中的PrintSalary 方法,我们使用了system名字空间中的console类.4.1.3
36、工具的选择系统使用的工具有visual studio 2005、Microsoft Office Access等.visual studio 2005是比较流行的集成开发环境.现在,在Visual Studio 2005中,你能够把一个目录作为一个web工程来打开,这是一种相当不错的改进.在我的开发机器上,我可能有50个不同的web工程.使用以前的visual studio 2003,要把所有这些作为IIS中的虚拟目录加以配置和维护并且使工程实现正确地引用是令人相当头疼的事情.现在vb程序员越来越青睐于visual studio 2005,因为它是质量和界面很好,而且有一个庞大的类库,使用时就
37、调用十分方便.visual studio 2005的安装比较简单的,全无人值守的自动安装, Microsoft Office Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理.使用accesss,可以使最后的数据库文件很小,导入导出比较方便.4.2各模块功能详细设计及实现4.2.1用户登录模块用户进入点击主程序,进入用户登录界面,由于本产品面向单用户,所以不用用户名密码登录,进入如图4-1所示的界面用户必须填写正确的密码信息,提交后数据库查看用户是否正确填写界面中的密码,如未全部不正确,则给出提示信息,用户重新填
38、写其中用户填写内容的验证是通过adodb控件实现的,测试用户和录入用户主要是通过“select”语句实现的. 图4-1 程序登录流程图关键代码如下: Dim m_sConnStr As String = Provider=SQLOLEDB;Data Source=A182D6214D8B47BSQLEXPRESS; & Initial Catalog=txl;Integrated Security=SSPI; 实例化Connection类并打开Connection对象 oConnection1 = New Connection oConnection1.CursorLocation = Cur
39、sorLocationEnum.adUseClient oConnection1.Open(m_sConnStr) Dim sSQL As String = SELECT code,sat FROM user 实例化并打开Recordset对象 m_oRecordset = New Recordset m_oRecordset.Open(sSQL, oConnection1, CursorTypeEnum.adOpenStatic,_ LockTypeEnum.adLockBatchOptimistic, CommandTypeEnum.adCmdText) kong1 = Trim(m_oR
40、ecordset.Fields.Item(0).Value.ToString() kim = (Asc(m_oRecordset.Fields.Item(2).Value().ToString) - 48) Mod 10 判断用户状态 获取用户上次登录时设定是否要求密码登录 If kim Mod 2 = 0 Then Panel1.Visible = False Timer1.Enabled = True Else : Panel1.Visible = True End If nim = 1 4.2.2主界面初始化显示模块主程序的显示样式如第二章中的图2-2.初始化模块流程图如下图4-2.从g
41、roups表中,将linkid=0的记录循环取出将其标题和时间显示在成员组栏中,根据记录的Id号为标题建立链接,系统从联系人信息表中读取出成员组的Id号从notice表中读取对应的记录,并作对应的关联工作,将其具体内容显示在主显示区栏;主显示区的显示是从成员组栏中读取出获得焦点的组所包含的记录,初始化时焦点处于关系树的根节点.图4-2 程序初始化关键代码如下:A、 成员组显示块初始化Dim m_sConnStr As String = Provider=SQLOLEDB;Data Source=A182D6214D8B47BSQLEXPRESS; & _ Initial Catalog=txl
42、;Integrated Security=SSPI; 实例化Connection类并打开Connection对象 oConnection1 = New Connection oConnection1.CursorLocation = CursorLocationEnum.adUseClient oConnection1.Open(m_sConnStr) Dim sSQL As String = SELECT sat fromuser 实例化并打开Recordset对象 m_oRecordset = New Recordset m_oRecordset.Open(sSQL, oConnectio
43、n1, CursorTypeEnum.adOpenStatic, _ LockTypeEnum.adLockBatchOptimistic, CommandTypeEnum.adCmdText) UpdateInfo() Dim szSQL As String = SELECT g_name,son_g FROMgroup_g where father_name=0 根节点查询 m_oRecordset1 = New Recordset 为treeview添加根节点 m_oRecordset1.Open(szSQL, oConnection1, CursorTypeEnum.adOpenStatic, _ LockTypeEnum.adLockBatchOptimistic, CommandTypeEnum.adC