1、个人收集整理 勿做商业用途图书管理系统论文1需求分析1。1任务概述经过详细调查,本软件以小型图书馆或者图书室使用.多次与负责图书馆管理的老师进行研讨后,加深了对现行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如下1:1.新的图书购进后,分门别类地进行归并并汇总,加以编号。2。新书编号后,上到书架以备学生借阅。3.如某学生需要借阅图书,则在其本人的借阅登记表上进行登记,记录相关借阅信息与借阅日期。4.学生借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。根据以上调查分析,可以给出其现行业务流程图和组织结构图。如图1.1.1和1.1.2所示。图1.1。1
2、现行图书管理业务流程图图1。1.2 图书馆组织结构图1.2 数据描述(数据流图+数据字典)数据流程分析是把数据在组织(或原系统)内部的流动情况抽象的独立出来,舍去了具体组织机构、信息载体、处理工作、物资材料等,单从数据流动过程来考察实际业务的实际业务的数据处理模式,主要包括对信息的流动、传递、处理、存储等的分析.经过详细的调查,我们已经清楚了解了现行的业务流程1,接下来给出系统的逻辑模型。构造系统逻辑模型的工具是数据流图和数据字典。根据现行图书管理的业务流程,首先把数据流图中的源点和终点都选定为学生,因此可以得到图书管理系统的基本系统模型2,如图1。2.3所示。图1。2。3 图书管理系统的基本
3、系统模型根据基本系统模型,对其逐步细化,得到描述逻辑系统细化后的数据流图,如图1。2。4所示。借书业务第一层PDF 借书业务第二层PDF图1.2。4有了系统的数据流图后,还有相当多的数据信息如图书、借阅、归还等信息需要进一步描述,这就是需要定义数据字典2,才能把现有的系统描述清楚.图1。2。5列出了系统的主要数据字典。1。2。5 系统主要数据字典1.3 功能需求经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。 以下是图书管理系统必须具备的功能:1.新图书的登记功能:对于购进的新书,系统必须具备图书信息资料的录入功能。2.图书的查询修改功能:当图书资
4、料发生变化,如图书丢失或有错误信息输入时,则应能够及时对数据进行修改和补充。3。借阅的登记,归还的登记功能:系统的主要功能之一,供本校学生借阅图书、归还图书,并进行登记。4.学生信息的增加、删除和修改功能:系统主要功能之一,建立学生信息,并对其进行维护。5.系统管理员对管理员的权限设置功能:对管理员设置权限功能。1.4 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:1.系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能.在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处
5、理的需求。2。系统的开放性和系统的可扩充性图书管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充.而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3.系统的易用性和易维护性图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉.这就要求系统能够提供良好的用户接口,易用的人机交互界面.要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用
6、户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。4。系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。5。系统的先进性目前计算系统的技术发展相当快,做为图书管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后.这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品.6。系统的响应速度图书管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时
7、,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。2可行性分析2。1 开发新系统的必要性使用计算机软件对图书进行管理,是计算机应用的一部分.以实现图书检索迅速、可靠性高、存储量大、寿命长、成本低等特点,能极大程度地提高图书管理的效率,也是图书管理信息化、正规化管理的必然趋势。同时还要注下列几点:1.由于各方面的限制,如人员不够、技术缺乏等原因,开发时应本着循序渐进,逐步完善的原则,不能贪大求全,盲目开发。2。要注意信息的准确、及时、适用、经济,只有及时、准确的信息才能保证系统开发的质量和效率。3。从全局出发注意系统开发的整体优化,还要注意系统的可扩展性和
8、可延伸性。2。2 建立信息管理系统的可行性可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究.信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为图书馆管理系统的可行性分析如下:1.经济可行性分析作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等.由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和
9、预见性,快速地反馈市场信息。2。技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。3。社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在
10、当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到:1.对传统管理理念的冲击,可能引起管理层的变动和人员的调整。2。对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。3.对图书馆与读者之间业务方式的转变和扩充。4.从各种社会因素可行性分析从各种社会因素上分析可降低工作人员工作强度,提高效率,会得到学校工作人员的一致同意的.综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。最后,针对用户对图书资源进行有效利用和管理的功能需
11、求,用建模技术对图书管理资源采用面向对象的描述方式,在具体系统功能实现之前,建立起系统模型是很必要的,这里采用具有可视化、能够柔性实现分析、设计和开发系统的统一建模语言实现系统模型构建。同时,结合最流行的基于浏览器的数据管理模式,建议采用基于组件技术的B/S(brower/server)系统结构。3功能模块输入/输出设计系统功能分析密码设置:每个操作员均有自己的密码,可以防止非本系统人员进入本系统;又因每个人的权限不一致,故可以防止越权操作。资料维护:为了存放图书、读者档案的全部数据,本系统将每一本图书和每位读者的信息进行管理。系统维护包括对各种表记录的修改、删除、添加等操作。系统查询:可以按
12、图书编号、借阅证编号等相关信息进行查询系统管理:进行员工管理、数据备份和数据恢复。报表统计:包括统计图书信息、读者信息、借阅信息和罚款信息等。其它操作:包括修改密码、添加用户、页面设置等3。1 输入设计输入界面是管理信息系统与用户之间交互的纽带,设计的任务是根据具体业务要求,确定适当的输入形式,使管理信息系统获取管理工作中产生的正确的信息。输入设计的目的是提高输入效率,减少输入错误。输入设计的设计原则: (1)控制输入量;(2)减少输入延迟;(3)减少输入错误;(4)避免额外步骤;(5)简化输入过程;输入设计的要求:(1)输入界面要明晰、美观、大方; (2)便于填写,符合工作习惯; (3)便于
13、操作; (4)有保证输入数据正确性的校验措施;3.2 输出设计内容主要有:(1)读者留言汇总表(2)库存图书统计(3)借阅图书情况统计(4)读者个人信息(5)读者所需的图书信息(6)读者所需电子图书信息(7)读者所需期刊信息(8)库存期刊统计(9)借阅期刊情况统计3。4 图书管理系统安全图书馆管理系统的安全措施主要包括规章保护,技术措施,行政管理以及人员教育四个方面,内容主要有:(1)规章保护(2)技术措施(3)行政管理(4)人员教育在此,需要提醒的是不同部门的权限是不同的,以下就是不同部门所具有的权限:图书馆:可以对图书馆管理系统的任何一个子系统进行管理。图书室:只允许对图书管理系统进行管理
14、。4 系统实施4.1 选择的开发平台硬件平台是开发与运行系统所需要的硬件环境,由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高。我们选择的是1G内存、300G硬盘内存的普通微机。软件平台是指系统开发与运行的软件环境。我们在开发时选用了稳定性较强的Windows XP中文专业版和Microsoft Office Access 2003作为开发语言用于数据库设计. 由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。Microsoft Office Access 2003具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据
15、库访问通道,使得可以轻松方便的对数据库管理.4.2 系统测试实际开发过程中不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。我们在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:(1)分调:在“登陆界面”文本框中输入“用户名,例002,然后输入密码,该界面从其他相应的文本框中能够显示出相应的信息,系统是可以正常运行的.为了保证每一项菜单能够正确
16、实现系统设计的功能,我们把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。 (2)数据跟踪:我们完成菜单项测试后,又对系统内的每一个数据进行了跟踪。 (3)总调:在以上测试的基础上,我们对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。在具体的测试中,我认为应当遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须
17、重新进行测试.4。3 系统切换方式我们设计的图书管理系统准备采用并行切换方式,以保证平衡可靠的过度。即一方面使用本系统来进行工作,另一方面又继续沿用老的手工方式,在一定时期内,如果程序存在一些漏洞和错误,用户也提出了修改意见,那么系统还要经过进一步完善才能正式投入使用,终止以前的操作方式。5 软件设计 5.1 数据库设计这里的数据库采用Access,用ADO作为连接数据对象。1、建立Access 数据库启动Access,建立一个空的数据库book.mdb,如图5.1.1所示.使用程序设计器建立系统,需要的表格如下。图书登记表,如图5.1.2所示。 5。1。1 建立数据库book。mdb 图 5
18、。1.2 图书登记表图书借阅表,如图5。1。3所示。 5.1.3 图书借阅表 图书资料表,如图5。1。4所示.系统管理表,如图5。1。5所示。 5.1。4图书资料表 5.1。5 系统管理表2、连接数据在Visual Basic环境下,选择“工程”“引用”命令,在随后出现的对话框中选择“Microsoft ActiveX Data Objects 2。0 Library”,然后单击“确定”按钮,如图5.1.6所示。 5。1。6 引用ADO连接数据库在程序设计的公共模块中,先定义ADO连接对象。语句如下:Public conn As New ADODB.Connection 标记连接对象然后在子程
19、序中,用如下的语句即可打开数据库:Dim connectionstring As Stringconnectionstring = provider=Microsoft。Jet.oledb。4。0; &_”data source=book.mdb”conn.Open connectionstring3、设置ODBCVB的ADO对象是通过ODBC来访问数据库,所以还要建立ODBC数据引擎接口。打开控制面板中的“管理工具”“数据源”(ODBC),出现如图5.1.7所示的对话框。 5.1.7 ODBC对话框单击“添加”按钮,出现“创建新数据源”对话框,如图5。1.8所示。5.1。8 “创建新数据源对
20、话框选择Microsoft Access Driver(。mdb),单击“完成”按钮,出现如图5。1。9所示对话框。 5.1。9 设置连接数据源在“数据源名”文本框中添加一个名字,单击“确定”按钮完成系统默认连接设置。然后在ODBC对话框中单击“确定按钮完成ODBC设置。5.2 界面设计1、添加记录中的书籍记录和学生记录如图5.2。1所示.5。2.1 添加记录2、删除记录中的书籍记录和学生记录如图5.2.2所示。5。2.2 删除记录3、登录界面及相关信息界面如图5。2。3和图5。2。4所示。 5.2.3 登录密码 5。2。4相关信息界面 4、借还操作中的借书、还书和续借如图5。2。5所示. 5
21、.2。5借还书操作界面5、系统菜单界面如图5。2。6所示。5.2.6系统菜单界面6、系统设置中的管理选项、系统选项和数据备份如图5。2.7所示。5.2.7系统设置界面5。3 窗体代码1、主窗体代码*所调用的API函数,自定义过程,类型,常数请参阅相应模块Option Explicit *窗体事件*窗体加载Private Sub Form_Load()loadmdb Adodc1 连接数据库初始化窗体下方状态栏StatusBar1.Panels(1)。Text = 无记录源StatusBar1.Panels(2).Text = 共有记录 0 条从config.ini文件读取窗体及控件的属性For
22、mmain。Caption = getinistr(”system, formcaption)Formmain.Caption = Formmain。Caption & 图书管理系统”Formmain.WindowState = GetIniNum(system”, winstate)Formmain。WindowState = 2DataGrid1.BackColor = GetIniNum(”system, ”dgridcolor”)DataGrid1。BackColor = 16777215ListView1。BackColor = DataGrid1。BackColorEnd Sub窗
23、体大小调整Private Sub Form_Resize()If WindowState = 1 Then 最小化时添加到系统栏 addicon Formmain, traymenu iconshow ”MINI图书管理系统”Else 正常显示时控件调整 Picture1。Move 0, Picture1。Top, ScaleWidth, Picture1.Height If ScaleHeight Toolbar1.Height Picture1。Height - 20 0 Then DataGrid1.Move 0, Toolbar1。Height + Picture1。Height, S
24、caleWidth, ScaleHeight - Toolbar1。Height - Picture1.Height - StatusBar1.Height - 20 Else Exit Sub End If If ListView1。Visible = True Then If ScaleHeight - Toolbar1.Height - Picture1.Height - 20 0 Then ListView1。Move 0, Toolbar1.Height + Picture1.Height, ScaleWidth, ScaleHeight - Toolbar1。Height Pict
25、ure1.Height - StatusBar1.Height 20 Else Exit Sub End If End IfEnd IfEnd Sub*窗体卸载Private Sub Form_Unload(Cancel As Integer)卸载所有可见窗体,加载关闭窗体,Unload formaddUnload FormaboutUnload FormdelUnload FormoptionUnload FormsysUnload FormupdateUnload FormsysFormend.ShowEnd Sub*菜单事件*关于Private Sub about_Click()Form
26、about.ShowEnd Sub添加书籍记录Private Sub addbook_Click()formadd。Showformadd.SSTab1。Tab = 0End Sub添加学生记录Private Sub addstudent_Click()formadd.Showformadd.SSTab1.Tab = 1End Sub管理选项Private Sub admin_Click()Formsys。ShowFormsys。SSTab1.Tab = 0End Sub备份和恢复Private Sub backup_Click()Formsys。ShowFormsys。SSTab1。Tab
27、= 2End Sub借出书籍Private Sub bookin_Click()Formoption。ShowFormoption。SSTab1.Tab = 1End Sub归还书籍Private Sub bookout_Click()Formoption.ShowFormoption。SSTab1.Tab = 0End Sub删除书籍记录Private Sub delbook_Click()Formdel。ShowFormdel.SSTab1.Tab = 0End Sub删除学生记录Private Sub delstudent_Click()Formdel。ShowFormdel.SSTab
28、1。Tab = 1End Sub最小化时还原窗体Private Sub display_Click()Formmain.WindowState = 0Formmain.ShowdeliconEnd Sub最小化时退出Private Sub exit_Click()Formend.ShowdeliconUnload FormmainEnd Sub书籍浏览Private Sub explorbook_Click()If ListView1.Visible = True Then ListView1.Visible = Falseexplorrecord Adodc1, DataGrid1, 书籍总
29、表”StatusBar1。Panels(1)。Text = 书籍总表StatusBar1.Panels(2)。Text = ”共有记录 ” & Str(Adodc1.Recordset。RecordCount) & ”条End Sub借阅记录浏览Private Sub explorerout_Click()If ListView1。Visible = True Then ListView1。Visible = Falseexplorrecord Adodc1, DataGrid1, ”借阅总表StatusBar1。Panels(1).Text = ”借阅总表StatusBar1.Panels(
30、2)。Text = ”共有记录 & Str(Adodc1。Recordset。RecordCount) & 条End Sub学生记录浏览Private Sub explorstudent_Click()If ListView1。Visible = True Then ListView1.Visible = Falseexplorrecord Adodc1, DataGrid1, 学生总表”StatusBar1。Panels(1)。Text = 学生总表StatusBar1.Panels(2)。Text = ”共有记录 & Str(Adodc1。Recordset.RecordCount) &
31、”条”End Sub帮助主题Private Sub helpfile_Click()Shell hh。exe App。Path readme.txt, vbNormalFocusEnd SubPrivate Sub StatusBar2_PanelClick(ByVal Panel As MSComctlLib。Panel)End Sub最小化时归还书籍Private Sub traybookin_Click()bookin_ClickEnd Sub最小化时借阅书籍Private Sub traybookout_Click()bookout_ClickEnd Sub最小化时续借书籍Privat
32、e Sub trayrebookout_Click()rebookout_ClickEnd Sub更新书籍记录Private Sub updatebook_Click()Formupdate。ShowFormupdate.SSTab1.Tab = 0End Sub更新学生记录Private Sub updatestudent_Click()Formupdate。ShowFormupdate。SSTab1.Tab = 1End Sub电子邮件*续借操作Private Sub rebookout_Click()Formoption.ShowFormoption.SSTab1.Tab = 2End
33、Sub系统设置Private Sub system_Click()Formsys.ShowFormsys.SSTab1。Tab = 1End Sub*其他控件事件过程*搜索*根据内容下拉列表设置条件下拉列表的选项Private Sub Combo1_Click()Select Case Combo1。TextCase ”学生信息With Combo2 .Clear 。AddItem 学号” 。AddItem 姓名 .AddItem 单位 。Text = ”学号 。Enabled = TrueEnd WithCase ”书籍信息With Combo2 。Clear 。AddItem ”书号” 。
34、AddItem ”书名 。AddItem 作者” .AddItem ”类别 .AddItem ”简介 .AddItem 出版社 .AddItem 是否借出 。Text = 书号” 。Enabled = TrueEnd WithCase ”借阅信息”With Combo2 。Clear .AddItem ”学号 。AddItem 书号” 。Text = 学号 。Enabled = TrueEnd WithEnd SelectEnd Sub执行搜索Private Sub Image1_Click()On Error GoTo wrongIf Text1。Text = Or Text1.Text =
35、 输入关键字” Then 判断关键字是否为空MsgBox 请输入关键字!Else 判断列表文本是否合法 If Combo1.Text = Then MsgBox ”请选择内容和条件! Else 查询 selectrecord Adodc1, DataGrid1, Left(Combo1.Text, 2) 总表, Combo2。Text, Text1。Text If ListView1。Visible = True Then ListView1。Visible = False 窗体状态栏 StatusBar1.Panels(1)。Text = 搜索: & Combo2.Text ”与“ & Te
36、xt1。Text & ”接近的 Combo1。Text StatusBar1.Panels(2)。Text = 共有记录 & Str(Adodc1。Recordset。RecordCount) ”条” End IfEnd IfExit Subwrong: 错误处理 MsgBox ”搜索失败,请选择列表框中所列选项!End Sub按钮显示状态Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Image1.BorderStyle = 1End SubPrivate S
37、ub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Image1。BorderStyle = 0End Sub关键字文本框Private Sub Text1_Click()If Text1。Text = ”输入关键字 ThenText1.Text = ”End IfEnd Sub工具条事件Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button。IndexCase 1boo
38、kout_ClickCase 2bookin_ClickCase 3rebookout_ClickCase 4formadd.ShowCase 5Formupdate。ShowCase 6Formdel.ShowCase 7Formsys。ShowEnd SelectEnd Sub弹出菜单Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = vbRightButton Thennorecord.Visible = Falselinex.V
39、isible = FalseFormmain.PopupMenu rightmenuEnd IfEnd SubPrivate Sub datagrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = vbRightButton Thennorecord.Visible = Truelinex.Visible = TrueFormmain.PopupMenu rightmenuElseText1.SetFocusEnd IfEnd SubPrivate Sub mbookin
40、_Click()bookin_ClickEnd SubPrivate Sub mbookout_Click()bookout_ClickEnd SubPrivate Sub mrbookout_Click()rebookout_ClickEnd SubPrivate Sub ebook_Click()explorbook_ClickEnd SubPrivate Sub ebookout_Click()explorerout_ClickEnd SubPrivate Sub estudeny_Click()explorstudent_ClickEnd SubPrivate Sub norecord
41、_click()ListView1.Visible = TrueStatusBar1。Panels(1).Text = 无记录源”StatusBar1。Panels(2)。Text = 共有记录 0 条”End Sub2、添加/删除记录代码 添加记录窗体*所调用的API函数,自定义过程,类型,常数请参阅相应模块Option ExplicitDim rcdset As Recordset 窗体级变量,存放ADO控件的当前记录*窗体事件*窗体加载Private Sub Form_Load()loadmdb Adodc1 连接数据库Text1.Text = autobooknum(Adodc1, 书
42、籍总表) 获得书籍自动编号Text6。Text = autostudentnum(Adodc1, 学生总表”) 获得学生自动编号End Sub*添加数据*书籍记录Private Sub Command1_Click()判断各个字段值是否合法,符合条件添加记录If Text2.Text = ” Or Text3.Text = ” Or Text4。Text = Or Combo1。Text = ” ThenMsgBox 请完整输入必要字段,简介可以不填。”Exit SubElseAdodc1。CommandType = adCmdTableAdodc1.RecordSource = ”书籍总表Adodc1.RefreshDim rcdset As ADODB.RecordsetSet rcdset = Adodc1.Recordsetrcdset.AddNewrcdset!书号 = Text1.Textrcdset!书名 = Text2。Textrcdset!作者 = Text3。Textrcdset!类别 = Combo1。Textrcdset!出版社 = Text4.Textrcdset!简介 = Text5.Textrcdset.updateAdodc1。RefreshFormmain。DataGrid1。RefreshMsgBox ”记录已添加。Text