ADONET数据库访问技术
- 格式:ppt
- 大小:842.50 KB
- 文档页数:40
实验四 数据访问技术一、实验名称数据访问技术二、实验目的1、了解与有关的命名空间。
2、掌握使用Connection对象连接服务器上数据库的方法。
3、掌握使用Command对象执行数据库访问命令的方法。
4、掌握DataReader对象和DataAdapter对象的使用方法。
5、掌握DataSet对象的使用方法。
三、实验内容在SQL Server 2000数据库管理系统中建立名称为“jxgl”的数据库,在该数据库中建立一个名称为“student”的关系表,其结构如图4-1所示,完成下列题目:图4-1 “tudent”关系表的结构1、编程实现按所在系查询学生信息。
要求查询条件所在系从键盘上输入,编程中要求用到Connection对象、Command对象和DataReader对象。
2、编程实现向“student”关系表中插入一条学生记录,并显示插入后“student”关系表中所有记录。
要求学生记录从键盘上输入,编程中要求用到Connection对象、DataAdapter对象和DataSet 对象。
四、编程提示1、连接SQL Server2000数据库要使用SqlConnection类的对象来完成,其代码如下。
SqlConnection conn = new SqlConnection();conn.ConnectionString = "Password=123456;Persist Security Info=True;User ID=sa;InitialCatalog=jxgl;Data Source=JSJX"; //JSJX是SQL Server2000数据库服务器名。
conn.Open();2、利用Command对象和DataReader对象实现查询的主要代码如下。
SqlCommand comm = conn.CreateCommand();comm.Connection = conn;mandText = "select * from student where 所在系='"+StrSzx+"'"; // StrSzx存储要查询的系名SqlDataReader dr = comm.ExecuteReader();if (dr.HasRows){while (dr.Read())Console.WriteLine(dr[0]+" "+dr[1]+" "+dr[2]+" "+dr[3]+" "+dr[4]);}elseConsole.WriteLine("对不起,没有你要查询的记录!");3、利用DataAdapter对象和DataSet对象实现插入的主要代码如下。
数据访问技术数据访问技术就是将C#和MSSQLl连接起来的纽带可以通过将内存中的临时数据写⼊到数据库中,也可以将数据库中的数据提取到内存中供程序调⽤。
是所有数据访问技术的基础。
使⽤⼀些ADO对象,如Connection和Command对象,也引⼊了⼀些新对象。
关键的新对象包括DataSet,DataReader,和DataAdapter。
Connections. ⽤于连接和管理针对数据库的事务。
Commands. ⽤于发出针对数据库的SQL指令。
DataReaders. ⽤于从SQL Server数据源读取只进流的数据记录。
DataSets. ⽤于针对结构型数据,XML数据和关系型数据的存储,远程处理和编程。
DataAdapters. ⽤于推送数据到DataSet,并针对数据库协调数据。
ConnectionsConnections⽤于和数据库“沟通”,并且被声明为特定的提供程序级别,例如SQLConnection。
Commands扫描连接然后结果集以流的形式被返回,这种流可以被DataReader对象读取,或者推⼊DataSet对象。
下⾯的例⼦演⽰了如何创建⼀个连接对象。
Connections可以通过调⽤Open⽅法被显式打开1 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");数据库连接字符串server=连接的数据库;database=连接数据库中国的那个表;user=⽤户名;pwd=密码CommandsCommands包含提交到数据库的信息,特定于提供程序的类⽐如SQLCommand。
⼀个命令可以是⼀个存储过程调⽤,⼀个UPDATE语句,或者⼀个返回结果的语句。
你也可以使⽤输⼊和输出参数,返回值作为命令的⼀部分。
下⾯的⽰例演⽰了如何对数据库执⾏⼀条insert(⽆返回值)语句和update(有返回值)语句。
数据库访问技术⼀. 的定义来源于COM组件库ADO(即ActiveX Data Objects),是微软公司新⼀代.NET数据库的访问模型,是⽬前数据库程序设计⼈员⽤来开发基于.NET的数据库应⽤程序的主要接⼝。
它利⽤.NET Data Provider(数据提供程序)进⾏数据库的连接和访问,通过数据库程序能够使⽤各种对象来访问符合条件的数据库内容,让提供数据库管理系统的各个⼚商可以根据此标准开放对应的.NET Data Provider,这样设计数据库应⽤程序⼈员不必了解各类数据库底层运作的细节,只要掌握所提供对象的模型,便可访问所有⽀持.NET Data Provider的数据库。
结构模型如下所⽰:图1. 结构模型是⼀个类库,这些类提供了很多的对象,可⽤于完成数据库连接和增删查改等操作。
其中包括如下五个对象: 1)Connection:⽤来连接数据库(SQL Server使⽤的是SqlConnection对象); 2)Command:⽤来对数据库执⾏SQL命令,如增删查改等操作; 3)DataReader:⽤来从数据库中返回只读数据,⽤数据源填充DataSet对象; 4)DataAdapter:与DataSet对象相结合使⽤,实现对数据库的控制; 5)DataSet:可看作离线时内存中的数据库;这五个对象提供了两种读取数据库的⽅式;第⼀种⽅式:使⽤Connection、Command、DataReader,其权限只能读取或查询数据库;第⼆种⽅式:使⽤Connection、Command、DataAdapter、DataSet,其权限能进⾏各种数据库的操作。
读取数据库操作⽰意图:图1. 结构模型⼆. 使⽤在线访问数据库的步骤(这⾥⽤的是SQL Server 数据库)1. 连接数据库直接上⼀段代码:using System.Data.SqlClient;string source = "server=(local); integrated security=SSPI; database=myDateabase;User ID=sa;pwd=sa";SqlConnection conn = new SqlConnection(source);conn.Open();// 对数据库数据进⾏操作conn.Close();(1). ⾸先添加命名空间System.Data.SqlClient;(2). 定义数据库连接字符串:第⼀种⽅法:直接把数据库连接字符串存放在字符串对象中,如上代码所⽰;第⼆种⽅法Web:将数据库连接信息存放在web.config配置⽂件中,然后通过使⽤ConfigurationStringSettings类进⾏调⽤。
ADO数据库访问技术及性能优化1 ADO访问数据库的模式ADO连接数据库的方法包括连接模式与断开模式两种,以满足不同数据源的访问需求。
1.1 连接模式以连接模式访问数据库就是在断开与数据库的连接之前读取及操作数据,利用DataReader对象即可实现,数据库中如果存在只读、只进的数据流,就可以被DataReader检索出来,执行查询时再返回查询结构,将其存储于客户端缓冲区;用户再利用DataReader的read方法向其发送请求。
利用DataReader可以立即检索数据,且每次仅在内存中存储一行,可以大幅降低系统开销,提高程序性能。
由此可见,数据库可以直接对DataReader进行高性能访问,其仅提供对数据只读与只向前的访问,且内存中不会驻留其返回结果,一次应用程序只能访问一条记录,不会对服务器的内存有过高要求,所以利用DataReader就能够将数据显示出来,故其可以保证程序性能处于最佳状态。
1.2 断开模式以断开模式访问数据库即是在断开数据库连接后进行数据的读取,其实现方式是采用DataAdapter对象和DataSet对象配合完成,DataAdapter 对象将数据填充至DataSet,其起到连接数据库与DataSet的作用,以实现数据的保存与检索,当其从数据源获取相关数据中后断开连接,在DataSet中可以进行数据的相关操作,完成后再将其中的数据返回数据源。
2 ADO主要对象可以说ADO是ADO的继承,其以ADO为基础,不过ADO中对象具有更为强大的功能,根据上文可知,这些对象可以根据其不同作用分为数据管理及连接特定数据源两类对象组:2.1 用于数据管理与存放的对象组该组对象包括DataSet、DataTable、DataColumn、DataRow以及DataRelatior等。
其中DataSet是ADO的核心,从某种程度上讲,该对象中包含了许多DataTable对象,这些信息以XML形式存在,比如数据表、数据列、数据行、各表之间的关系等等,可以对数据进行处理、遍历及搜索等。
数据库访问技术上 的最突出的特性是可以采用无连接(断开式)的方式访问和处理数据。
只在必要的时候对数据库进行连接,当处理完毕后它将及时关闭连接,所以可以减少应用程序对服务器资源的占用,这就保证了数据库服务器资源的可用性,使它可以为更多的用户服务,因此也就更加适合网络应用。
是一组不同的类构成的,这些类放在System.Data命名空间下,它们既分工明确,又相互协作地提供数据访问服务。
的两大核心组件——.NET Data Provider (数据提供程序);DataSet (数据集)4.5.DataSet是 的非连接(断开)结构的核心组件。
DataSet的设计目的很明确:为了实现独立于任何数据源的数据访问。
因此,结构可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。
DataSet包含一个或多个 DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable对象中数据的关系信息组成。
6.Data Provider用于连接数据库、执行命令和检索结果。
这些结果将被直接处理,或放置在 DataSet中以便根据需要向用户公开、与多个源中的数据组合,或在层之间进行远程处理。
.NET 地数据提供程序是轻量的,它在数据源和代码之间创建最小的分层,并在不降低功能性的情况下提高性能。
7.Data Provider的四个核心基类作用:mand 类:在利用 Connection 类建立了到数据源的连接后,就可以利用 Command 对象对数据源执行 SQL 语句或存储过程。
可以把 Command 对象看成是向 DataReader对象返回数据结果流的工具。
9.DataReader类:DataReader对象提供一种从数据库读取只进的行流的一种方式。
它是读取单向只读数据的最快方法;DataReader对象一次只在内存中存储一个记录,所以内存资源负荷最小;使用 DataReader时,关联的 Connection 忙于服务 DataReader,除了关闭以外不能执行其他任何操作。