熟悉VB软件开发方法以及数据库访问

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

广东工业大学实验报告土木与交通工程学院测绘工程专业1201班成绩评定_______学号姓名(合作者____学号____)教师签名_______预习情况操作情况考勤情况数据处理情况实验1题目熟悉VB软件开发方法以及数据库访问第2周星期二第8,9节一、实验目的与要求实验目的:熟悉VB开发环境,了解和掌握利用VB读取给定格式的数据文件的方法以及利用动态数组方法对读入的数据进行存储和编辑;了解VB菜单的制作方法;熟悉VB中自定义数据类型的使用方法;熟悉VB中模块的建立方法,了解利用VB(程序建立或者控件连接)连接数据库的方法。实验要求:(1)读取水准高差数据时要利用动态数组方法,实验编写出初步的源程序。(2)水准高差观测数据文件格式为特定格式(见数据文件SZTJ.dat)。(3)利用自定义类型的动态数组对读入的观测数据进行保存。(4)利用数据控件(Data控件)或DAO对象或ADO对象将已知数据和观测数据写入数据库中。(5)要实现菜单操作功能。二、实验方案程序设计过程:(1)通用声明所有通用变量,首先利用进行变量声明,整个程序中必须对所有变量进行声明,避免重复变量,利用公共定义语句进行定义变量,本实验中定义动态数组yzd用于存放已知点数据,gcz用于存放观测值数据,并且定义过程中使用的数组l和r,全局变量numknow,numunknown,numobser分别为已知点个数,未知点个数和观测值个数,定义整形变量为b,i,j,k,m,字符型变量为a,定义读入数据库过程变量为conn,rs,qs,filename,还包括对界面中的菜单栏的设置,利用菜单编辑器进行菜单的设置,分别为文件下拉栏和数据下拉栏,用于文件的读取和数据库的连接,如下图所示:23(2)处理数据和读取数据1.首先对数据的形式进行处理,将数据格式规律化利用open语句打开文件OpenpathnameFor[Input/Output/Append]Asfilenumber[Len=buffersize]利用LineInput#语句从已打开的文件中读出一行并进行数据格式处理利用replace函数将不规则的多个空格转化为规则的单个空格利用判断语句if将空行去掉2.读取各项数据利用split函数将一行的数组分别分割成若干数据,再将数据分别赋值给已定义好的变量,读取过程利用数据原格式中的,,为读取不同种类数据的分隔符号,利用if语句进行判断,再利用for循环语句进行逐行读取,同时也是用Redimpreserve语句进行对动态数据进行重新定义,使用Debug.Print语句检查数据是否转入变量或数组,作调试作用,实际操作如下:4(3)读入数据库和数据显示与修改本次实验选用ADO对象数据访问方式将已读取的数据写入数据库,分别编写了两种不同类型的ADO写入代码,分别为ADO1和ADO2。ADO1的写入方式为利用Adodc数据控件进行连接和写入数据库,利用Adodc.ConnectionString语句连接数据库,再使用Adodc.RecordSource=来对应数据库中的对应表格,利用Adodc1.Recordset.AddNew语句进行对数据库逐行读入数据,分别对应数据库中的字段名,如下所示:再利用DataGrid数据控件对读入数据库的数据进行显示,利用SetDataGrid.DataSource=Adodc语句实现该功能,其中主要的函数有:Refresh,Update,RecordSource,DataSource,Recordset,AllowUpdate连接数据库主要语句:Adodc1.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&App.Path&\SZAdjustment.mdb;PersistSecurityInfo=False'connecttothedatabaseAdodc1.RecordSource=YZDAdodc1.RefreshSetDataGrid1.DataSource=Adodc1.RecordsetADO2的写入方式为直接利用open进行连接数据库和Feild进行写入数据库,首先先定义了读入数据库过程变量为conn,rs,qs,filename,其中conn为5ADODB.Connection类型,rs和qs为ADODB.Recordset类型,filename为字符串类型,利用conn.Open语句打开数据库,利用rs.Openselect*from语句对应数据库中的对应表格,利用AddNew和Feild函数进行对数据库逐行读入数据,分别对应数据库中的字段名,如下所示:再利用DataGrid数据控件对读入数据库的数据进行显示,利用SetDataGrid.DataSource=rs语句实现该功能,其中主要的函数有:Refresh,Close,Update,AddNew,Fields,Open,RecordSource,DataSource连接数据库主要语句:conn.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=&App.Path&\SZAdjustment.mdb;PersistSecurityInfo=Falsers.CursorLocation=adUseClientrs.Openselect*fromYZD,conn,adOpenStatic,adLockOptimisticAdodc1.RecordSource=YZD删除,增加和清空功能的实现利用delete,AddNew函数和循环语句delete实现逐条删除,增添记录和清空记录的功能三、实验结果和数据处理本实验利用程序实现对数据的读取和写入数据库并显示的功能,程序界面如图:6操作后的实验结果如图:四、结论答:通过本次实验,本人基本掌握了使用VB编写程序进行数据读取,数据库连接和数据库显示,在数据读取之前,明白到程序只能处理有一定规律格式的数据格式,所以在读取之前必须对数据格式进行统一化和规律化,数据读取过程中也懂得了自定义动态数组的重要性,可以随时调用数组,数据库的连接和显示也初次了解到VB具有多种方式进行访问数据库,利用Visualbasic作为数据库开发平台具有简单性,灵活性和可扩展性的优点,了解到选择Visualbasic作为开发数据库前端应用程序的工具,主要是因为Visualbasic可以和多种数据库连接,并且Visualbasic可以通过不同方式与各种数据库进行连接,主要有三种方式,即Access数据库引擎,MicrosoftODBC驱动程序和第三方ODBC驱动程序,本实验为GIS的编程实现数据库访问的基础,在VB编程的基础上,实现GIS软件开发的目的。五、问题与讨论(1)自定义变量类型有那些优点?答:自定义变量类型最大的优点是把一些在逻辑上有关联的东西组织在了一起,使得程序更具有可读性。本次实验中在VB中使用Type关键字可以定义程序员所有的自定义类型数据,自定义类型数据的使用是由于有些数据不好用标准数据类型表示,尤其在写比较复杂的程序时,逻辑关联是非常重要的。7(2)动态数组有那些优点?答:动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间,因为传统数组需要在程序运行之前,就要指定大小,而大多数情况,我们并不能预先知道数组的大小,所以使用动态数组,可以有效利用存储空间。(3)数据文件有几种类型?各种类型有哪些读写操作?答:在Visualbasic中,根据文件中数据的存放形式,有三种文件访问的类型:1)顺序型:适用于读写在连续块中的文本文。顺序文件的打开:OpenpathnameFor[Input/Output/Append]Asfilenumber顺序文件的读操作:1.Input#语句语法:Input#filenumber,varlist功能:从已打开的顺序文件中读出数据并将数据赋值给变量2.LineInput#语句语法:LineInput#filenumber,varname功能:从已打开的顺序文件中读出一行并将它赋给varname变量3.Input函数语法:Input(number,[#]filenumber)功能:返回以Input或Binary方式打开的文件中指定数目的字符4.EOF函数语法:EOF(filenumber)功能:当已经到达Random或者顺序Iuput打开的文件结尾时,返回-1(True),否则返回0(False)5.FreeFile函数语法:FreeFile[(rangenumber)]功能:返回下一个可供Open语句使用的空文件号顺序文件的写操作:步骤如下:1.用open语句按Output或者Append方式打开一个文件。2.用Print#或Write#语句把数据写入文件。3.写完后,用Close语句关闭文件。Print#语句语法:Print#filenumber,[outputlist]功能:将格式化显示的数据写入顺序文件中。Write#语句语法:Write#filenumber,[outputlist]功能:将数据写入顺序文件2)随机型:适用于读写固有长度记录结构的文本文件或者二进制文件8随机文件的打开与关闭:Openpathname[ForRandom]AsfilenumberLen=reclength使用Close语句来关闭文件随机文件的读操作:使用Get#语句,其语法如下:Get[#]filenumber,[recnumber],varname随机文件的写操作:使用Put#语句,其语法如下:Put[#]filenumber,[recnumber],varname3)二进制型:适用于读写任意有结构的文件二进制文件的打开和关闭:Open语法如下:OpenpathnameForBinaryAsfilenumber关闭也使用Close二进制文件的读写操作:使用Get#和Put#语句Get[#]filenumber,[recnumber],varnamePut[#]filenumber,[recnumber],varname常用语句和函数:1.Seek函数语法:Seek(filenumber)功能:返回在Open语句打开的文件中当前的读/写位置2.Seek语句语法:Seek[#]filenumber,position功能:在Open语句打开的文件中,设置下一个读/写操作的位置3.LOF函数语法:LOF(filenumber)功能:返回用Open语句打开的文件的大小,该大小以字节为单位4.Loc函数语法:Loc(filenumber)功能:返回一个在已打开文件中指定的当前读/写位置(4)在VB6.0中访问数据库有哪几种方式?答:VB6.0提供了以下3种类型的数据库访问方式:·ActiveXDataObject(ADO)·RemoteDataObject(RDO)·DataAccessObject(DAO)9六.思考题如何通过读入的水准高差观测数据,提取高程控制网中所有水准点的点名?答:本实验中实现该功能,可以将观测值中的gcz中的gcz.starpt()和gcz.endpt()两个起点和终点的数组中的全部点号进行筛选,利用循环和判断语句逐个对比,从而筛选出全部点号中唯一的点号,这样就可以得到高程控制网中所有水准点的点名。

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功