版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章数据库应用编程568379.5DataReader对象9.6DataGridView对象9.7DataSet对象9.8DataAdapter对象返回第9章数据库应用编程9109.9数据绑定9.10应用实例返回第9章数据库应用编程VisualC++也因其强大的功能和高度的灵活性等特点深受广大程序员的喜爱。本章旨在介绍使用VisualC++开发基于数据库应用程序的方法,内容如下:⟡数据库概述;⟡ADO.NET概述;⟡Connection对象;⟡Command对象;⟡DataReader对象;⟡DataGridView对象;⟡DataSet对象;⟡DataAdapter对象;⟡数据绑定。上一页下一页返回9.1数据库概述许多应用程序需要处理大量的数据,数据库就是对这些大量数据进行管理、存储。目前具有多种数据库管理系统(DBMS),比如Access、SQLServer、Oracle、Sysbase、VisualFoxpro等。数据库是按照一定组织方式存储的相关数据的集合,可以分为关系、层次和网状三种模型,其中关系数据库模型较为流行。9.1.1关系数据库模型关系数据库是以关系模型来组织的。关系模型中数据的逻辑结构是一张二维表,由行和列组成,如表9-1的学生表由5列、5行组成,关系数据库模型中使用字段、记录、候选码、域、关键字等术语下一页返回9.1数据库概述表9-2和表9-3为课程表和选课表,它们之间存在参照与被参照的关系。课程号在关系课程表中是主码,在选课表中是外码。9.1.2结构化查询语言(SQL)结构化查询语言SQL(StructuredQueryLanguage),是一种功能齐全的数据库语言。目前,各种数据库管理系统几乎都支持SQL。各种数据库系统有了共同的数据存取语言和标准接口,为更广泛的数据共享开创了广阔的前景。SQL语言具有语言简洁、易学、易用的特点。完成核心功能的语句只用了9个动词,SQL的核心动词见表9-4。上一页下一页返回9.1数据库概述1.表的创建功能定义基本表语句的一般格式为CREATETABLE[〈库名〉]〈表名〉(〈列名〉〈数据类型〉[〈列级完整性约束条件〉][,〈列名〉〈数据类型〉[〈列级完整性约束条件〉]][,…n][,〈表级完整性约束条件〉][,…n]);上一页下一页返回9.1数据库概述9.1.3使用图形用户界面的方法建立数据库、创建表(1)安装好MicrosoftSQLServer2008后,打开SQLServerManagementStudio:单击“开始|所有程序”菜单,找到MicrosoftSQLServer2008下面的SQLServerManagementStudio并双击,如图9-1所示。显示连接到服务器界面,如图9-2所示。该表为一个二维表,所设定的字段有“序号、姓名、手机、座机、生日、地址、备注”等字段。其中序号不为空,并设为主键,如图9-3所示的表结构设计窗口。上一页返回9.2ADO.NET概述述在.NET中数据库的访问是通过ADO.NET(ActiveXDataObjects.NET)完成的。通过ADO.NET,在应用程序中可以访问关系数据模型,还可以访问非关系数据模型。ADO.NET只在必要的时候对数据库进行链接,当处理完毕后将及时关闭链接,保证了数据库服务器资源的可用性,可以为更多的用户服务,更适合网络应用。ADO.NET体系结构分为数据提供者和数据集(DataSet),数据提供者包含以下核心类:Connection、Command、DataReader、DataAdapter、Transaction、Exception、Parameter等。对于不同的数据源,ADO.NET分别提供了相应的数据提供程序,从而引用不同的命名空间,数据库的数据提供程序见表9-5。返回9.3Connection对象在ADO.NET中数据库链接是通过Connection对象来管理的,对于任何数据源的操作都需要建立一个链接对象(生成一个Connection对象),由于有不同的数据提供者,因此有不同的Connection对象与之对应,见表9-5。Connection对象常用属性和方法见表9-6、表9-7。返回9.4Command对象当通过Connection对象与数据源建立链接后,从数据源中返回查询结果集或者对数据源进行插入、删除、更新等操作,可以使用Command对象,其常用属性、方法分别见表9-8、表9-9。返回9.5DataReader对象在使用Command对象的ExecuteReader()方法执行有返回结果集,且没有聚合函数的查询语句时,将返回一个包含检索结果的DataReader类的对象。对于DataReader类的对象提供了一种只读、只向前的方式的快速读取数据库数据的方式,该对象仅与数据库建立一个只读的且仅向前的数据流,并在当前内存中每次仅存放一条记录,所以DataReader对象可用于只需读取一次的数据,即可用于一次性地滚动读取数据库数据。因此使用DataReader对象可提高应用程序的性能,并减少系统开销。DataReader对象不能直接实例化,需要通过Command对象的ExecuteReader()方法生成。调用DataReader对象的Read()方法遍历记录集时,数据库需要是连接并且保持打开的状态,当不再读取数据时需要调用Close()方法关闭记录集返回9.6DataGridView对象DataGridView控件在工具箱中的图标是,它可以绑定多种数据源,通过DatgridView对象的相关属性引用查询结果集的行和列或者表的行与列。其常用属性见表9-11。DataGridView对象的常用方法见表9-12。返回9.7DataSet对象象DataSet对象也叫数据集对象,在工具箱中的图标是,是ADO.NET的核心,支持断开、分布式数据方案,在DataSet对象中修改数据将不会直接影响到数据源,DataSet对象独立于数据源,若要对数据源进行修改需要通过DataAdapter对象方可实现。一个数据集对象中有一个Tables集合属性,该属性是DataTableCollection类型,每个成员都是一个DataTable对象,可以使用如下方式访问每个DataTable对象(若Ds为DataSet类型的指针)。DataTable的结构是通过DataColumn表示的。DataColumn对象的常用属性见表9-13。返回9.8DataAdapter对象DataAdapter对象又称数据适配器,在工具箱中的图标为,是用来充当数据集对象和数据源之间桥梁的对象,可以通过该对象从数据库中获取数据,并将这些数据存储到数据集中,或者将数据集中修改的数据通过数据适配器提交给数据库,这样数据库中的数据就可以得到更新。DataAdapter对象使用Connection对象连接数据源,使用Command对象从数据源中取出数据,并通过Fill()方法将数据送到数据集的DataTable中去,或者将数据集中更改的数据保存到数据源中。DataAdapter对象的属性见表9-14。DataAdapter对象的方法见表9-15。返回9.9数据绑定BindingNavigator控件可以为用户提供简单的数据导航。该控件在工具箱中的图标是该控件上带有定位到数据集中第一条、最后一条、下一条和上一条记录的按钮,而且还有用于添加和删除记录的按钮,该控件通常和BindingSource组件一起使用。BindingSource组件在工具箱中的图标是。返回9.10应用实例(1)先建立学生成绩数据库,并在该库中建立学生表(t_student)和选课表(t_score),在窗体中拖放dataGridView1,dataGridView2两个控件,在dataGridView1中显示所有的学生表(t_student)中的内容,在dataGridView2中显示所有选课表(t_score)中的内容,如果单击dataGridView1中的某个学生的学号,则在dataGridView2中会显示该学生所选的所有课程及其成绩。主表t_student表的结构如图9-10所示从表t_score表的结构如图9-11所示返回表9-1学生表返回表9-2课程表返回表9-3选课表返回表9-4SQL的核心动词返回图9-1SQLServerManagementStudio选项界面返回图9-2连接到服务器界面返回图9-3表结构设计窗口返回表9-5数据库的数据提供程序返回表9-6Connection对象常用属性返回表9-7Connection对象常用方法返回表9-8Command对象的常用属性返回表9-9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 满洲里大学就业前景
- 失眠健康课件设计
- 新都AI新闻速递
- 人工智能常见应用场景
- 《回忆鲁迅先生》人物形象、写法赏析(解析版)
- 想抢AI流量红利?昭通AI推广公司哪家好要看这3点
- 克服孩子的个性弱点的班主任工作总结
- 化工腐蚀试题及答案
- 机电队月考试题及答案
- 2026云南玉溪玉电电力设计院有限公司社会招聘20人备考题库附参考答案详解【满分必刷】
- 2026年海南省万宁市高一数学下册期末考试模拟测试卷(考点提分)附答案
- 2026年社区网格员综合知识笔试考试题库及参考答案
- 2026年计算机一级考试WPS基础练习题含答案
- 成都湔江投资集团有限公司下属公司2026年招聘笔试备考试题及答案详解
- 2026贵州黔东南州岑巩县事业单位第二轮公开招聘工作人员98人考试备考试题及答案详解
- 加油站防恐怖袭击突发事件专项应急预案
- 学校老校区改造提升项目方案投标文件(技术方案)
- 拓展培训项目-:85个常规拓展项目介绍
- 2026-2030中国高端矿泉水行业市场发展分析及发展趋势与投资前景研究报告
- GB/T 27906-2026救生抛投器
- 2027届高考一轮复习备考方案
评论
0/150
提交评论