ADO.NET数据库访问技术案例教程 第5章 统计数据源中的数据.ppt_第1页
ADO.NET数据库访问技术案例教程 第5章 统计数据源中的数据.ppt_第2页
ADO.NET数据库访问技术案例教程 第5章 统计数据源中的数据.ppt_第3页
ADO.NET数据库访问技术案例教程 第5章 统计数据源中的数据.ppt_第4页
ADO.NET数据库访问技术案例教程 第5章 统计数据源中的数据.ppt_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第 5 章 统计数据源中的数据,设计数据库应用程序时,经常需要统计数据源中的数据,以“教务管理信息系统”为例,经常需要统计以下数据:全校学生总人数、男生人数、女生人数、各个班级的学生人数、优秀学生人数、课程平均成绩、班级平均成绩和学生平均成绩等。,这些数据的统计主要涉及SQL中的查询语句,应用ADO.NET中的连接对象和数据命令对象便可以实现,本章主要介绍如何统计数据源中的数据。,【知识技能目标】 (1)掌握连接数据源的方法。 (2)掌握Connection对象的连接字符串的设置。 (3)掌握SqlConnection类的属性、方法和事件。,(4)掌握连接SQL Server数据库、Acce

2、ss数据库、Excel电子表格的方法。 (5)掌握SqlCommand类的属性和方法。 (6)掌握建立数据命令对象的方法。,(7)掌握使用数据命令执行Transact-SQL语句和存储过程的方法。 (8)重点掌握利用数据命令的ExecuteScalar方法统计数据源中的数据。 (9)了解连接池的工作原理及使用方法。,【本章学习导航】 本章主要探讨如何连接不同类型的数据源,如何设置连接字符串,如何利用数据命令的ExecuteScalar方法统计数据源中的数据,本章是以后各章的基础,因此读者一定要深入理解、全面掌握。,建议分为两个教学单元,第一个教学单元为5.1和5.2,第二个教学单元为5.3。

3、ADO.NET访问数据库的典型步骤是:建立连接打开连接执行操作取得数据关闭连接。首先必须学会如何建立连接。,5.1实 例 分 析,首先创建一个简单的窗体,统计SQL Server数据库“JWInfo”中“学生信息”数据表中男生的人数。,【实例5-1】 1设计任务 创建一个窗体,用于统计SQL Server数据库“JWInfo”中“学生信息”表中男生的人数,其运行效果如图5-1所示。,图5-1统计男生人数窗口,2设计过程 (1)新建一个项目Chapter5_1,该项目中的窗体命名为“frmCount1”。 (2)在窗体中添加两个标签控件,窗体及控件的设计外观如图5-2所示。,图5-2窗体及控件的

4、外观,(3)切换到代码窗口,在类定义代码之前引入命名空间,程序代码如代码5-1-1所示。,窗体Load事件过程的程序代码如代码5-1-2所示。,(4)保存项目,窗体运行结果如图5-1所示。,3代码分析 程序代码5-1-2分析如表5-1所示。,表5-1程序代码分析,5.2连接数据源,要将后台数据库中的数据呈现在用户界面中,必须先连接到数据源,这个操作必须通过Connection对象来完成。,其操作过程是: (1)建立Connection对象; (2)打开连接; (3)将数据操作命令通过连接传送到数据源执行并取得其返回的数据; (4)数据处理完成后,关闭连接。,5.2.1连接类 1SqlConne

5、ction类 SqlConnection类用于连接SQL Server数据源,使用SqlConnection类时应引入命令空间System.Data.SqlClient。 SqlConnection类提供了以下两种构造函数建立SqlConnection对象。,(1)默认构造函数:SqlConnection() 默认构造函数不包括任何参数,它所建立的SqlConnection对象在未设定它的任何属性之前,它的ConnectionString、Database和DataSource属性的初始值为空字符值(),而ConnectionTimeout属性的初始值为15秒。,使用SqlConnection

6、类的默认构造函数建立连接时,先建立SqlConnection对象,然后再设置ConnectionString属性以便指定连接字符串。,语法格式如下。 Dim 连接对象名 As New SqlConnection | OleDbConnection,创建Connection对象时根据所连接的数据库类型选择采用SqlConnection类或者OleDbConnection类。 示例代码如下所示。,(2)以连接字符串为参数的构造函数: SqlConnection(ByVal ConnectionString As String) 语法格式如下。,Dim 连接对象名 As New SqlConnect

7、ion(连接字符串) |OleDbConnection(连接字符串),这个构造函数以一个连接字符串作为其参数,一般有两种表现方式。 方式一:将连接字符串作为参数,直接写在括号内,代码如下所示。,方式二:先定义一个字符串变量保存连接字符串,然后以字符串变量作为构造函数的参数,代码如下所示。,前面的代码5-1-2中的第02行至第04行若改为以上两种形式,程序的运行结果相同。,2OleDbConnection类 如果连接Access数据库或者Excel电子表格,则必须使用OleDbConnection类。,【实例5-2】 1设计任务 创建一个窗体,该窗体用于计算Access数据库“JWInfo.md

8、b”中的“成绩表”中所有学生的平均成绩,窗体的运行效果如图5-3所示。,图5-3计算平均成绩窗体的运行结果,2设计过程 (1)新建一个项目Chapter5_2,将窗体的name属性值修改为“frmAverage1”,在该窗体中添加两个标签控件,如图5-4所示。,图5-4计算平均成绩窗体的设计状态,(2)切换到代码窗口,首先在代码“Public Class frmAverage1 ”声明之前添加代码引入所需的命名空间:Imports System.Data.OleDb。 (3)窗体Load事件过程的程序代码如代码5-2-1所示。,3代码分析 比较代码5-1-1与代码5-2-1发现连接SQL Se

9、rver数据库与连接Access数据库有所不同,主要区别有:连接Access数据库必须使用OleDbConnection类,在连接字符串中将Provider键值设置成“Microsoft.Jet.OLEDB.4.0”,使用Data Source键值指定数据库文件的完整路径。,4知识要点说明 “Application.StartupPath”表示当前项目文件夹中“bin”子文件夹的绝对路径。,访问Excel电子表格与访问Access数据库相似,窗体Load事件过程的程序代码如代码5-2-2所示。 代码5-2-2使用连接字符串作为参数,访问Excel电子表格必须将“Extended Propert

10、ies”键值设置成“Excel 8.0”。,5.2.2连接字符串 建立SqlConnection对象的关键点就是设置正确的连接字符串,连接字符串主要包括连接一个数据源所需的各项信息,主要键值如下。,(1)指定使用哪一个OLE DB提供程序。 (2)指定连接哪一台服务器。 (3)指定访问哪一个数据库。 (4)登录时采用哪一种安全性验证模式。 (5)连接被打开时,是否返回安全性相关信息。 (6)等待服务器响应的时间为多少。,1SqlConnection对象的连接字符串 对于前面的代码5-1-1中的连接字符串,完整书写为以下形式。,2OleDBConnection对象的连接字符串 OleDBConn

11、ection对象主要用于访问Access、Oracle和Excel电子表格等类型的数据源,OleDBConnection对象的连接字符串的主要键值有:Provider、Data Source、User ID和Password,各个键值的主要功能及设置如表5-3所示。,表5-3 OleDBConnection对象的连接字符串中键值的功能及设置,连接Access数据库的连接字符串示例如下。 Dim strConn As String= Provider=Microsoft.Jet.OLEDB.4.0 ; Database=Student; Pooling=False ),可以通过设置键值“Min

12、Pool Size”和“Max Pool Size”来控制连接池中保持的最少连接数量和最多连接数量。连接池中保持的最少连接数量默认为0,也就是键值“Min Pool Size”的默认属性值为0,如果需要同时使用多个连接来访问特定的数据源,可以将此键值设置成大于0的数值。,4监控连接池 要监控应用程序的连接池使用状态,并检查连接到SQL Server的连接数量,可以使用SQL Server的事件探查器工具,也可以使用Windows 2000或Windows 2003的“性能”系统工具,还可以使用SQL Server的企业管理器检查重复调用系统存储过程的结果。,5.3使用数据命令统计数据源中的数据

13、,本节着重探讨前面的代码5-1-2的第07和第08行的数据命令:Dim comm As New SqlCommand ( Select Count (*) from 学生信息 where 性别=男 , conn),以及第10行调用数据命令的方法:ExecuteScalar。,命令对象是指SqlCommand、OleDbCommand和OracleCommand类的实例,本节以SqlCommand对象为例进行分析。,5.3.1建立数据命令对象 建立Command对象,可以使用“工具箱”中的Command组件,也可以编写程序代码实现。编写程序代码通过使用SqlCommand类或OleDbComma

14、nd类的构造函数分别创建对应的Command对象。,1SqlCommand类的构造函数 要将某一个类实例化,必须通过其构造函数来进行。SqlCommand类提供了4种构造函数来建立SqlCommand类的实例。 (1)创建Command对象的语法格式 语句格式如下。,Dim 对象名 As New SqlCommand(SQL字符串 , Connection对象),其中“SQL字符串”就是要执行的SQL语句,“Connection对象”是前面连接数据库时建立的连接对象。,(3)SqlCommand类构造函数应用举例 已建立连接对象conn,如果要查询“班级信息”表中所有的“班级名称”数据,分别应

15、用前三种构造函数创建SqlCommand对象。, 应用第一种构造函数建立数据命令对象 Dim comm As New SqlCommand() comm.Connection = conn comm.CommandType = CommandType .Text comm.CommandText = Select 班级名称 From 班级信息, 应用第二种构造函数建立数据命令对象 Dim comm As New SqlCommand(Select 班级名称 from dbo.班级信息) comm.Connection = conn, 应用第三种构造函数建立数据命令对象 Dim comm As

16、New SqlCommand(Select 班级名称 from dbo.班级信息,conn),2Command对象的常用属性 Command对象的常用属性如表5-6所示。,表5-6Command对象的常用属性,3Command对象的常用方法 Command对象的常用方法如表5-7所示。,表5-7 Command对象的常用方法,5.3.2使用数据命令执行SQL语句 【实例5-3】 1设计任务 创建一个窗体,该窗体使用数据命令执行SQL语句,计算SQL Server数据库“JWInfo”中的“成绩表”中的所有学生的平均成绩,窗体“frmSqlCommand”运行时,单击【开始执行SQL语句】按钮,

17、结果如图5-5所示。,图5-5使用数据命令执行SQL语句的结果,2设计过程 (1)新建一个项目Chapter5_3。 (2)在项目中添加一个名为“frmSqlCommand1”的窗体,窗体的外观如图5-5所示,在窗体中添加两个命令按钮和1个标签。 (3)切换到代码窗口,编写程序代码,实现其功能。,3知识要点说明 使用Connection对象建立了连接后,可以使用Command对象对数据源执行SQL语句或存储过程,从而把数据返回到DataReader或者DataSet中,实现查询、修改和删除等操作。,调用SqlCommand对象的ExecuteScalar方法来执行数据命令,主要应用以下两种场合

18、。,(1)通过SqlCommand对象所执行的SQL语句或存储过程只会返回单一值。,(2)如果想取得结果集的第一条数据记录的第一个字段的内容,也可以使用Execute Scalar方法,此时虽然SqlCommand对象所执行的SQL语句或存储过程会返回结果集而不只是单一值,但ExecuteScalar方法将只返回结果集的第一条数据记录的第一个字段的内容,其他的数据记录与字段将会被忽略。,5.3.3使用数据命令执行存储过程 下面使用数据命令执行SQL Server数据库中的存储过程,计算SQL Server数据库“JWInfo”中的“成绩表”中所有学生的平均成绩。,窗体“frmSqlCommand”运行时,单击【开始执行存储过程】按钮,结果如图5-6所示。该图演示了如何执行“JWInfo”数据库中的存储过程“AverageScore”,最后计算出“成绩表”中所有学生的平均成绩。,【课堂实践】 【课堂实践1】 打开光盘中文件夹【ClassroomPractise5_1】中的解决方案文件【ClassroomPractise5_1.sln】,打开该解决方案中的窗体【Form1.vb】,切换到代码窗口补写Load事件过程的程序代码。,【课堂实践2】 打开光盘中文件夹【ClassroomPractise5_2】中的解决方案文件【Classroom

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论