本章主要讲解了如何使用systemdatasqlclient中的类来访课件_第1页
本章主要讲解了如何使用systemdatasqlclient中的类来访课件_第2页
本章主要讲解了如何使用systemdatasqlclient中的类来访课件_第3页
本章主要讲解了如何使用systemdatasqlclient中的类来访课件_第4页
本章主要讲解了如何使用systemdatasqlclient中的类来访课件_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

,第6章 ADO.NET编程,本章主要讲解了如何使用System.Data.SqlClient中的类来访问SQL Server数据库。同时在本章的后半部分还列举了留言板系统实例,来说明访问SQL Server数据库相关类的实际应用。,6.1 SQL Server 2005概述,SQL Server 2005是Microsoft推出的一套数据库系统软件平台,为了使数据获得安全有效的传输。本节将会详细讲述SQL Server 2005的安装配置。,6.1.1 SQL Server 2005简介 SQL Server是一个全面的集成的端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。,SQL Server 2005为IT专家和信息工作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。,通过全面的功能集、现有系统的集成性以及对日常任务的自动化管理能力,SQL Server 2005为不同规模的企业提供了一个完整的数据解决方案。SQL Server数据平台包括以下工具。,关系型数据库 复制服务 通知服务 集成服务,分析服务 报表服务 管理工具 开发工具,6.1.2 SQL Server 2005安装,图6-1 开始安装SQL Server 2005,图6-2 准备安装,图6-3 最终用户许可协议,图6-4 安装必备组件,图6-5 成功安装所需的组件,图6-6 使用Microsoft SQL Server安装向导,图6-7 系统配置检查,图6-8 注册信息,图6-9 要安装的组件,图6-10 功能选择,图6-11 “实例名”界面,图6-12 “服务账户”界面,图6-13 “身份验证模式”界面,图6-14 “排序规则设置”界面,图6-15 “报表服务器安装选项”界面,图6-16 “错误和使用情况报告设置”界面,图6-17 “准备安装”界面,图6-18 “安装进度”界面,图6-19 完成安装界面,6.1.3 SQL语言简介 SQL全称是结构化查询语言(Structured Query Language),最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。,SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。,如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxpro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。,SQL语言包含4个部分。 (1)数据查询语言DQL-Data Query Language SELECT (2)数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE,(3)数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP (4)数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK,1SELECT语句 SELECT语句用于从表中选取数据。表格式的结构被存储在一个结果表中(称为结果集)。其语法如下所示: SELECT 列名称 FROM 表名称,2INSERT INTO语句 INSERT INTO 语句用于向表格中插入新的行。,其语法格式如下所示: INSERT INTO 表名称 VALUES (值1, 值2,.) 也可以指定所要插入数据的列。这种语法格式如下所示: INSERT INTO table_name (列1, 列2,.) VALUES (值1, 值2,.),3UPDATE语句 UPDATE语句用于修改表中的数据。其语法格式如下所示: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值,4DELETE语句 DELETE语句用于删除表中的行,其语法格式如下所示: DELETE FROM 表名称 WHERE 列名称 = 值,ADO.NET数据访问,1、ADO.NET概述 ADO.NET相对于ADO有了很大的改进。ADO.NET与ADO既相似又有很大的区别。二者都能够编写对数据库服务器中的数据进行访问和操作的应用该程序,并且具有易于使用、高速度、低内存支出和占用磁盘空间较少等特点,支持用于建立基于客户机/服务器和Web应用程序的主要功能。但是ADO使用OLE DB接口并且基于微软公司的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于微软公司的.NET体系框架。众所周知,.NET体系不同于COM体系,ADO.NET接口也完全不同于ADO和OLE DB接口,也就是说,ADO.NET和ADO是两种数据访问方式,ADO.NET不是ADO的.NET版 。,通常把ADO.NET的对象分为在线对象和离线对象,实现在线操作和离线操作,一般情况下各自都需要用到如下对象。,(1)在线操作:Connection、Command、Parameter(可选)、DataReader(可选)、Transaction(可选)、DataAdapter(可选)。 (2)离线操作:Connection、DataAdapter、DataSet、DataTable、DataRow、DataColumn、DataView(可选)、DataRelation(可选)、Constraint(可选),ADO.NET的体系结构,应用程序的开发流程,ASP.NET通过ADO.NET访问数据库,.NET数据库应用程序的开发流程有以下几个步骤。 (1)创建数据库。具体方法不在本书中介绍,读者可参考相关书籍。 (2)利用Connection对象创建到数据库的连接。 (3)利用Command对象对数据源执行SQL命令并返回结果。 (4)利用DataReader对象读取数据源的数据。DataReader对象只能将数据源从头至尾按顺序读取数据,不能只读取某条数据,也不能写入数据。因此,利用DataReader对象只能完成读取数据的功能,更复杂的功能将由DataSet对象完成。 (5)DataSet对象是ADO.NET的核心,与DataAdapter对象配合,完成数据库操作的增加、删除、修改、更新等操作。,ADO.NET的常见对象,1、Connection对象 Connection对象可用来连接到数据库和管理数据库的事务。它的一些属性描述数据源和用户身份验证。 Connection对象还提供一些方法允许程序员与数据源建立连接或断开连接。,Connection对象与要连接的数据源类型,(1)连接字符串,为了连接到数据源,需要一个连接字符串,即Connection对象的ConnectionString属性。连接字符串通常由分号隔开的名称和值组成,它指定数据库运行库的设置。连接字符串中包含的典型信息包括数据库的名称、服务器的位置和用户的身份。还可以指定其他操作的信息,诸如连接超时和连接池设置等。,使用Connection对象连接数据库,连接字符串的设置方法 对于SQL Server数据库,可以使用如下两种方式连接数据库,即采用集成的Windows验证和使用SQL Server身份验证进行数据库的登录。 (1)集成的Windows身份验证语法范例。 string connectionString=“server=localhost;database=Northwind;integrated security=SSPI”; (2)采用Sql Server身份验证的语法范例。 string connectionString = “server=localhost; database=Northwind; uid=sa; pwd=frock“;,创建Connection对象 以SqlConnection为例,可以用SqlConnection构造函数生成一个新的SqlConnection对象。这个函数是重载的,即可以调用构造函数的不同版本。例: SqlConnection mySqlConnection =new SqlConnection(“server=localhost; database=Northwind;uid=sa;pwd= frock”); 通过使用new关键字生成了一个新的SqlConnection对象。因此也可以设置该对象的ConnectionString属性,为其指定一个数据库连接字符串。这和将数据库连接字符串传入SqlConnection()构造函数的功能是一样的。要注意的是,只能在关闭Connection对象时设置ConnectionString属性。,连接字符串的存储 (1)存储在配置文件中。 在ASP.NET 2.0中,使用了一种在运行时解析为连接字符串值的新的声明性表达式语法,按名称引用数据库连接字符串。连接字符串本身存储在 Web.config 文件中的配置节下面,以便易于在单个位置为应用程序中的所有页进行维护。 (2)存储在类的方法中。 将数据库连接字符串存放在新建的一个类方法中,如可将此类命名为MySetting,2、Command对象 Command对象继承于.NET框架的IDbCommand接口。Command对象提供对数据库(或数据源)的查询、插入、修改、删除等操作,且它可以使用3种不同方式(即CommandType属性的值)执行数据库的命令 。 (1)Text(文本)类型,为Command对象的系统默认执行方式,它用于执行SQL语句,Command对象不需要进行任何处理就可以把该文本直接传递给数据库并执行。,(2)Stored Procedure(存储过程)类型,用于执行存储过程,存储过程是一种特殊的数据库命令,它把多个命令(如SQL语句)集中起来一次性提交给数据库并执行,因此可以提高数据库的执行效率。 (3)ableDirect类型,执行Command命令时,该类型执行方式返回一个完整的表,等价与Command对象使用Text执行方式执行“Select * from TableName”SQL语句。该类型执行方式只有OLE DB托管提供程序支持。,创建和使用Command对象,一般把对数据库的各种操作分成如下两种。 (1)不返回记录集的命令。通常是执行添加、插入和修改等操作的SQL语句来更新记录。 (2)返回记录集的命令。通常是执行查询SQL语句来获取数据集用于呈现。 不论是那种操作,都需要使用Command对象来执行SQL语句。这里,使用Sql Client Data Provider,所以需要定义SqlCommand对象。SqlCommand对象重载的几个构造方法包括:SqlCommand()、SqlCommand(string cmdText)、SqlCommand(string cmdText, SqlConnection connection)、SqlCommand(string cmdText, SqlConnection connection、 SqlTransaction transaction)。,使用一个Command对象简单来说需要以下步骤。 (1)声明一个有效的Connection对象。 (2)声明一个有效的Command对象。 (3)为Command对象指定SQL语句字符串和关联的Connection对象的实例。 (4)打开Connection对象。 (5)执行Command对象的各种方法执行数据库操作。 (6)关闭Connection对象。,3、DataReader对象 可以使用DataReader从数据库中检索只读、只进的数据流。只读是指在数据阅读器DataReader上不可更新、删除、增加记录;只进是指记录的接收是顺序进行且不可后退的。DataReader对象接收到的数据是以数据库的记录为单位的。查询结果在查询执行时返回,并存储在客户端的网络缓冲区中,直到用户使用DataReader的Read方法对它们发出请求。使用DataReader可以提高应用程序的性能,原因是它只要数据可用就立即检索数据,并且默认情况下一次只在内存中存储一行,减少了系统开销。,创建和使用DataReader对象: 在创建Command对象的一个实例之后,用户可以通过命令调用Command对象的ExecuteReader方法来创建DataReader对象,该方法从在Command对象中指定的数据源检索一些行,这时,DataReader就会被来自数据库的记录所填充。其创建格式如下(不能直接使用构造函数)。 SqlDataReader ObjReader=ObjCmd.ExecuteReader();,4、DataSet和DataAdapter对象 (1)DataSet对象 数据集(DataSet)对象是ADO.NET的核心,是实现离线访问技术的载体。数据集相当于内存中暂存的数据库,不仅可以包括多张数据表(DataTable),还可以包括数据表之间的关系和约束。由于DataSet对象是使用无连接传输模式访问数据源,因此,在用户要求访问数据源时,无需经过冗长的连接操作,而且有数据读入DataSet对象之后,便关闭数据连接,解除数据库的锁定,其他用户便可以再使用该数据库,避免了用户之间对数据源的争夺。,使用DataSet对象访问数据库的步骤如下。 (1)使用Connection对象创建数据连接。 (2)使用DataAdapter对象执行SQL命令并返回结果,DataAdapter对象构造在Command对象之上。 (3)使用DataSet对象访问数据库。 DataSet对象的创建方法如下。 DataSet myDS=new DataSet(“scores”);,DataSet对象模型由3个集合组成:Tables、Relations和ExtendedProperties,这3部分组成了DataSet的关系数据结构,如图所示:,(2) DataAdapter对象 ADO.NET提供了两种不同的方式从数据库中检索数据。一种是使用DataReader对象,但DataReader对象检索的是只读的、前向的数据流,不能对数据库中的数据进行增加、删除等操作。另一种方法是DataAdapter对象,DataAdapter对象与DataSet对象配合以创建数据的内存表示。DataReader对象通过一个数据连接来检索数据库中的数据,然后执行SQL命令,搜索要检索的数据,最后关闭数据连接。DataAdapter对象仅仅在需要填充DataSet对象时才使用数据库连接,完成操作之后就释放所有的资源。,使用DataAdapter填充数据集 DataAdapter填充DataSet的过程分为如下两步: (1)通过DataAdapter的SelectCommand属性从数据库中检索出需要的数据。 (2)再通过DataAdapter的Fill方法把检索的数据填充DataSet。,DataSet数据更新,从前面对DataSet对象的介绍中可以知道,每次调用DataAdapter对象的Fill方法都会检索一组新的记录,同时刷新DataSet的内容。但因为DataSet是面向无连接的,如果改变了DataSet的内容,就必须将改动写回数据库。 ADO.NET提供了DataAdapter的Update方法来完成更新数据库的功能。此方法分析DataSet中的每个记录的RowState,并且调用适当的Insert、Update和Delete语句。,6.2 访问SQL Server数据库,MS SQL Server是一个大型的数据库服务器系统。相对于其他小型的数据库系统来说,在稳定性、安全性、数据处理等多方面都具有一定的优势。SQL Server数据库服务器主要应用于大型的软件系统中,能够处理大数据量的数据交互和存储。,6.2.1 System.Data.SqlClient命名空间简介 System.Data.SqlClient命名空间是用于SQL Server的.NET Framework数据提供程序,描述了一个用于访问托管空间中的SQL Server数据库的类集合。,System.Data.SqlClient命名空间中的常用类如表6.8所示。,6.2.2 打开和关闭连接 访问数据库的第一步就是创建与数据库的连接,创建连接所涉及的类就是SqlConnection。,在SqlConnection构造函数中只有一个参数,表示指定的连接字符串。,其表达形式如下所示: Persist Security Info=False;Integrated Security=true;Initial Catalog= Northwind; server=(local) 其常用的连接字符串的关键字值的有效名称如表6.9所示。,6.2.3 读取数据 读取数据库有两种常用的方法,一种是使用SqlDataReader类,以数据行的只进流的方式读取。另一种是使用SqlDataAdapter类,把数据填充到DataSet对象的数据集中。,1使用SqlDataReader类 2使用SqlDataAdapter类,6.2.4 使用SQL语句操作数据 使用SQL语句是操作数据的主要方法之一。操作数据包括写入数据、修改或更新数据和删除数据等。,使用SQL语句操作数据主要通过SqlCommand类来实现,在SqlCommand的构造函数中有两个参数,第一个参数表示操作数据的SQL语句,第二个参数表示SqlConnection对象的实例。,6.3 创建留言板,本节创建一个功能相对简单的留言板,并且使用的是SQL Server数据库来存储数据。留言板的实现流程如图6-20所示。,图6-20 留言板的实现流程,6.3.1 设计保存留言内容的数据库

温馨提示

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

评论

0/150

提交评论