Visual-Basic-清华大学vb编程语言基础-第14讲

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

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

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

资源描述

第十四讲数据库数据库管理器的使用使用Data控件访问数据库使用ADO数据控件内容提要关系型数据库模型现今大部分数据库都采用关系模型,不仅由于其自身的功能强大,而且由于它提供了结构化查询语言(SQL)的标准接口关系数据库模型把数据用表的集合表示一个数据库可以由多个表组成,表与表之间可以用不同的方式相互关联•一对多关系•多对多关系•一对一关系一对多关系关系型数据库模型VB中,可以将一个或几个表中的数据构成记录集Recordset对象,记录集也由行和列构成,与表类似.学号课程成绩050001数学77学号姓名性别专业出生日期050001张红女英文1988-7-8050008牛丽女经管1985-1-2。。。。。。。。。。。。。。。(表一)数据库记录集学号姓名专业课程成绩050001张红英文数学77050008牛丽经管数学89。。。。。。。。。。。。。。Recordset对象记录集是浏览数据库的工具VB中数据库内的表不允许直接访问,而只能通过记录集对象进行记录的操作和浏览数据库记录集记录集类型说明Table是表格直接显示的数据。它比其他类型记录集处理速度快,内存开销较大。Dynaset一个或者几个表中的记录的引用,动态集和产生动态集的基本表可以互相更新。是最灵活的,功能最强的记录集。SnapShot数据库一瞬间的状态,显示的数据是静态、只读状态,内存开销最少。Recordset对象数据库管理器VB的数据库管理器(Visdata.exe)可用于管理数据库“外接程序”/“可视化数据管理器”命令打开可视数据管理器创建数据库“文件”/“新建”命令,新建一Access数据库student.mdb在数据库中新建“基本情况”表字段名类型宽度字段名类型宽度学号Text6专业Text10姓名Text10出生年月Date8性别Text2照片Binary“基本情况表”表结构创建数据库表中添加记录双击“基本情况”表•建立新表鼠标右键单击数据库窗口,弹出菜单,选择对应命令•打开、删除表,修改表结构和建立表间的关联等操作右键单击数据库窗口内的表名,弹出菜单,选择对应命令•编辑记录:双击表名,打开表格输入窗,编辑、增删记录数据库管理器使用小结Data控件不需编程访问数据库的功能能够利用三种记录集对象访问数据库中的数据编辑数据功能改变某个字段的值,只要移动记录,便把所作的修改存入数据库Data控件Data控件属性Connect属性指定要连接的数据库类型(Access,DBF,XLS,ODBC)DatabaseName属性指定使用的数据库文件名(包含路径)RecordSource属性确定具体可访问的数据,这些数据构成记录集对象RecordSet•RecordSource属性可以是数据库中的单个表名,也可以是使用SQL查询语言的一个查询字符串Data控件属性RecordType属性确定记录集类型(Table,DynaSet,SnapShot)BOFAction和EOFAction属性返回或设置一个值指示在BOFAction或EOFAction属性为True时Data控件进行什么操作•BOFAction0:重定位到第一个记录1:定位到一个无效记录•EOFAction0:重定位到最后一个记录1:定位到一个无效记录2:添加新的空记录数据控件只能连接数据库产生记录集,不能显示记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。数据库记录集绑定控件姓名田钢性别男常用绑定控件绑定控件DataSource通过指定一个有效的数据控件,将绑定控件连接到一个数据源上DataField设置数据库中有效的字段与绑定控件建立联系Data控件、记录集与绑定控件记录集学号姓名性别专业年龄050001张红女英文1988-7-8050010田钢男土木工程1987-9-3………………………………….数据库绑定控件的属性Data控件-例ConnectDatabaseNameRecordSourceData1AccessStudent.mdb基本情况在窗体上显示基本情况表的内容一个Data控件,6个绑定控件PictureBox1Text1Text2Text3Text4Text5DataSourceData1Data1Data1Data1Data1Data1DataField照片学号姓名性别专业出生日期对象对象属性属性Data控件-例PrivateSubPicture1_DblClick()Picture1.Picture=Clipboard.GetDataEndSub照片的输入方法可通过剪贴板将照片复制到Picture1控件中•程序运行时,双击Picture1,实现剪贴板到Picture1的复制•移动Data1的记录指针,Picture1中的照片存入数据库数据网格控件-MsFlexGrid不需编程实现多条记录的数据显示位于MicroSoftFlexGridControl6.0中设置DataSource属性为一个Data控件ConnectDatabaseNameRecordSourceData1AccessStudent.mdb基本情况属性对象DatasourceFixedRowsMsFlexGrid1Data11属性对象Rows、Cols(网格的行或列数)FixedRows、FixedCols(不可卷动的行或列数)Data控件的事件Reposition事件改变记录集的指针,使其从一个记录移到另一条记录时,触发Reposition事件通常用该事件显示当前指针的位置PrivateSubData1_Reposition()Data1.Caption=Data1.Recordset.AbsolutePosition+1EndSub记录集的当前指针记录集对象照片输入方法2PrivateSubData1_Reposition()Data1.Caption=Data1.Recordset.AbsolutePosition+1Picture1.Picture=LoadPicture(pic\&Data1.Caption&.gif)EndSub在Data1的Reposition事件中,使用LoadPicture函数,输入到Picture1控件中Data控件的事件Validate事件Validate事件发生在记录指针移动时,当新记录成为当前记录之前。一般用于对写入数据库的记录执行合法性检查PrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)IfText3.DataChangedThenMsgBox该数据不能修改Text3.DataChanged=FalseEndIfEndSubData控件的常用方法Refresh方法激活对数据控件属性的改变,使对数据库的操作有效PrivateSubForm_Load()DimmpathAsStringmpath=App.PathIfRight(mpath,1)\Thenmpath=mpath+\Data1.DatabaseName=mpath+student.mdbData1.RecordSource=基本情况Data1.RefreshEndSubUpdataControls方法将数据从数据库中重新读到被数据控件绑定的控件内Data1.UpdateControls放弃对记录的修改当前执行程序的路径RecordSet对象的属性AbsolutePosition属性返回当前记录指针值,第1条记录,其值为0,……BOF、EOF属性判断记录指针是否在首记录之前或在末记录之后Bookmark属性返回当前记录的标签。可将当前记录快速移动到设置为有效标签所标识的记录上PrivateSubForm_Click()mbookmark=Data1.Recordset.BookmarkEndSubPrivateSubCommand1_Click()Data1.Recordset.Bookmark=mbookmarkEndSubDimmbookmarkRecordSet对象的属性NoMatch属性在记录集中查找记录时,如找到匹配的记录,该属性为False,该属性常与Bookmark属性一起使用RecordCount属性RecordSet对象中的记录个数BOFEOFRecordCountBookmarkRecordSet对象的方法Move方法代替Data控件的4个箭头的功能,遍历整个记录集MoveFirstMoveLastMoveNextMovePrevious•MoveFirst方法•MoveLast方法•Move[n]方法•MoveNext方法•MovePrevious方法Move方法-例用四个命令按钮实现Data控件的四个箭头按钮的功能PrivateSubCommand1_Click()Data1.Recordset.MoveFirstEndSubPrivateSubCommand4_Click()Data1.Recordset.MoveLastEndSubPrivateSubCommand3_Click()Data1.Recordset.MoveNextIfData1.Recordset.EOFThenData1.Recordset.MoveLastEndSubPrivateSubCommand2_Click()Data1.Recordset.MovePreviousIfData1.Recordset.BOFThenData1.Recordset.MoveFirstEndSubRecordSet对象的方法Find方法可在指定的Dynaset或Snapshot类型的记录集对象中查找与指定条件相符的一条记录,并使之成为当前记录•FindFirst方法•FindLast方法•FindNext方法•FindPrevious方法Data1.Recordset.FindFirst专业='经管'专业='&mno&'mno是变量空格Data1.Recordset.FindNext专业Like'电*'模糊查询OptionCompareText'不区分大小写OptionCompareBinary'区分大小写Find方法-例PrivateSubCommand5_Click()DimmnoAsStringmno=InputBox$(请输入学号,查找窗)Data1.Recordset.FindFirst学号='&mno&'IfData1.Recordset.NoMatchThenMsgBox无此学号!,,提示EndSub添加查找功能RecordSet对象的方法Seek方法在表类型的记录集中查找与指定索引相符的第一条记录,并使之成为当前记录。数据表对象.Seekcomparison,key1,key2……=、=、、、、=必须先设置索引!Data1.RecordsetType=0Data1.RecordSource=基本情况Data1.RefreshData1.Recordset.Index=NoData1.Recordset.Seek,050010查找表中学号050010的第一条记录数据库记录的增、删、改操作增加记录-AddNew方法•调用AddNew方法,将一条新记录加入记录集内存缓冲区•给各字段赋值Recordset.Fields(“字段名”)=值•调用Update方法,确定所作的添加,将数据写入数据库说明:•调用Update方法写入记录后,记录指针自动返回到添加记录前的位置•为了使记录指针显示为新添加的记录,在调用Update方法后,使用MoveLast方法将记录指针移到新记录上数据库记录的增、删、改操作删除记录-Delete方法•定位被删除的记录,使之成为当前记录•调用Delete方法•移动记录指针说明:•使用Delete方法,当前记录被删除,没有任何警告信息•删除一条记录后,绑定控件仍然显示该记录的内容,必须通过移动记录指针刷新绑定控件(一般采

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

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

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

×
保存成功