《ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼 第9章 使用ADO.NET访问数据库》由会员分享,可在线阅读,更多相关《ASP.NET程序设计教程 C#版 教学课件 ppt 作者 崔淼 第9章 使用ADO.NET访问数据库(26页珍藏版)》请在金锄头文库上搜索。
1、第9章 使用ADO.NET访问数据库,本章讲述的主要内容 9.1 ADO.NET和数据库通用接口 9.2 数据库连接对象(Connection) 9.3 数据库命令对象(Command) 9.4 数据读取对象(DataReader ) 9.5 数据适配器对象(DataAdapter,9.1 ADO.NET和数据库通用接口,9.1.1 ADO.NET概述 ADO.NET是对ADO的一个跨时代的改进,它们之间有很大的差别。最主要表现在ADO.NET可通过DateSet对象在“断开连接模式”下访问数据库,即用户访问数据库中的数据时,首先要建立与数据库的连接,从数据库中下载需要的数据到本地缓冲区,之后
2、断开与数据库的连接。此时用户对数据的操作(查询、添加、修改、删除等)都是在本地进行的,只有需要更新数据库中的数据时,才再次与数据库连接,在发送修改后的数据到数据库后关闭连接。这样大大减少了因连接过多(访问量较大时)对数据库服务器资源的大量占用。,9.1 ADO.NET和数据库通用接口,9.1.2 数据库通用接口 美国微软公司提供的数据库通用接口程序,经过了ODBCOLEDBADOADO.NET几个发展阶段。 1. ODBC通用数据库接口 ODBC(Open Database Connectivity,开放数据库互联) 2. ADO通用数据库接口 ADO(Active Data Object,动
3、态数据对象),9.1 ADO.NET和数据库通用接口,9.1.3 ADO.NET的数据模型 ADO.NET采用了层次管理的结构模型,各部分之间的逻辑关系如下图所示。,9.1 ADO.NET和数据库通用接口,9.1.4 ADO.NET中的常用对象 在ADO.NET中数据集与数据提供器是两个非常重要,而又相互关联的核心组件。它们二者之间的关系如下图所示。,9.2 数据库连接对象(Connection),9.2.1 Connection对象概述 Connection类提供了对数据源连接的封装。类中包括连接方法及描述当前连接状态的属性。在Connection类中最重要的属性是ConnectionStr
4、ing(连接字符串),该属性用来指定服务名称、数据源信息及其他登录信息。 ConnectionString中有两个重要的重要的部分:字符串的内容和数据提供器名称。 字符串内容中包含有“DataSource”(数据源)、“Initial Catalog”(默认连接数据库)及用于描述用户身份的“User ID”和“Password”。,9.2 数据库连接对象(Connection),9.2.2 创建Connection对象 SqlConnection 连接对象名 = new SqlConnection(连接字符串); 或: SqlConnection 连接对象名 = new SqlConnecti
5、on(); 连接对象名.ConnectionString = 连接字符串;,9.2 数据库连接对象(Connection),9.2.3 Connection对象的属性和方法 1. Connection对象的属性,9.2 数据库连接对象(Connection),9.2.3 Connection对象的属性和方法 2. Connection对象的方法,9.2 数据库连接对象(Connection),9.2.4 数据库的连接字符串 1. 连接字符串中的常用属性,9.2 数据库连接对象(Connection),9.2.4 数据库的连接字符串 2. 连接到SQL Server的连接字符串 SQL Serv
6、er的.NET Framework数据提供程序,通过SqlConnection对象的ConnectionString属性,设置或获取连接字符串,可以连接Microsoft SQL Server 7.0或更高版本。 其语法格式为: “Data Source=服务器名或IP;Initial Catalog=数据库名;User ID=用户名;Password=密码“ 或者 “Server=服务器名或IP;Database=数据库名;Uid=用户名;Pwd=密码;Trusted_Connection=False“,9.2 数据库连接对象(Connection),9.2.4 数据库的连接字符串 3. 连
7、接到OLE DB数据源的连接字符串 OLE DB的.NET Framework数据提供器,通过OleDbConnection对象的ConnectionString属性,设置或获取连接字符串,提供与OLE DB公开数据源的连接或SQL Server 6.x更早版本的连接。 对于OLE DB .NET Framework数据提供程序,连接字符串格式中的Provider关键字是必需的,必须为OleDbConnection连接字符串指定提供程序名称。下列连接字符串使用Jet提供程序连接到一个Microsoft Access数据库。 “Provider=Microsoft.Jet.OLEDB.4.0;
8、Data Source=数据库名;User ID=用户名;Password=密码“,9.2 数据库连接对象(Connection),9.2.4 数据库的连接字符串 4. 连接字符串的存放位置 (1) 把连接字符串写在程序中 一般的初级教程多采用这种方法。这样写当然没有错误,但是要在许多页面中写入连接字符串,这时候如果需要改动连接字符串(比如换用户名和密码)的话,就得逐个修改。 (2) 把连接字符串放在web.config文件中 ,9.3 数据库命令对象(Command),9.3.1 创建Command对象 1. 使用构造函数创建Command对象 下面是使用构造函数创建SqlCommand对象
9、,并通过该对象的构造函数参数来设置特定属性值,其语法格式如下: SqlCommand 命令对象名 = new SqlCommand(查询字符串, 连接对象名); 或 SqlCommand 命令对象名 = new SqlCommand(); 命令对象名.Connection = 连接对象名; 命令对象名.CommandText = 查询字符串;,9.3 数据库命令对象(Command),9.3.1 创建Command对象 2. 使用CreateCommand()方法创建Command对象 下面是使用Connection对象的CreateCommand()方法创建SqlCommand对象的语法格式
10、: SqlCommand Command对象名 = Connection对象名.CreateCommand(); Command对象名.CommandText = 查询字符串;,9.3 数据库命令对象(Command),9.3.2 Command对象的属性和方法,9.3 数据库命令对象(Command),9.3.2 Command对象的属性和方法,9.4 数据读取对象(DataReader),9.4.1 DataReader对象的常用属性及方法 1) FieldCount属性:该属性用来获取当前行中的列数,如果未放置在有效的记录集中,则返回0,否则返回列数(字段数),默认值为-1。 2) Ha
11、sRows属性:用来获取DataReader对象中是否包含任何行。 3) Read()方法:使用该方法可将Reader指向当前记录,并将记录指针移到下一行,从而可使用列名或列的次序来访问列的值。如果到了数据表的最后,则返回一个布尔值false。 4) GetValue()方法: 5) GetValues()方法: 6) NextResult()方法: 7) Close()方法:,9.4 数据读取对象(DataReader),9.4.2 使用DataReader对象 【例9-4】使用DataReader对象设计一个用户登录身份验证页面,页面打开时如图9-7所示,用户在输入了正确的用户名和密码后,
12、程序将根据用户级别跳转到不同的页面。 例9-4,9.5 数据适配器对象(DataAdapter),9.5.1 DataAdapter对象概述 DataAdapter对象是一个双向通道,用来把数据从数据源中读到一个内存表中,以及把内存中的数据写回到一个数据源中。两种情况下使用的数据源可能相同,也可能不相同。而这两种操作分别称作填充(Fill)和更新(Update)。DataAdapter对象通过Fill方法和Update方法来提供这一桥接器。,9.5 数据适配器对象(DataAdapter),9.5.2 DataAdapter对象的属性和方法 常用的创建SqlDataAdapter对象的语法格式
13、如下所示: SqlDataAdapter 对象名 = new SqlDataAdapter(SqlStr, conn); 其中SqlStr为Select查询语句或SqlCommand对象,conn为SqlConnection对象。,9.5 数据适配器对象(DataAdapter),9.5.2 DataAdapter对象的属性和方法 1. DataAdapter对象的常用属性 DataAdapter对象的常用属性见表9-6。,9.5 数据适配器对象(DataAdapter),9.5.2 DataAdapter对象的属性和方法 2. DataAdapter对象的常用方法 DataAdapter对象
14、的常用方法见表9-7。,9.5 数据适配器对象(DataAdapter),9.5.2 DataAdapter对象的属性和方法 3. DataTable对象 DataTable对象是内存中一个关系数据库表,可以独立创建也可以由DataAdapter来填充。声明一个DataTable对象的语法格式如下所示: DataTable 对象名 = new DataTable(); 一个DataTable对象创建后,通常需要调用DataAdapter的Fill()对其进行填充,使DataTable对象获得具体的数据集,而不再是一个空表对象。,9.5 数据适配器对象(DataAdapter),9.5.2 Da
15、taAdapter对象的属性和方法 4. DataTable对象的常用属性 DataTable对象的常用属性主要有Columns属性、Rows属性和DefaultVIew属性。 Columns属性:该属性用于获取DataTable对象中表的列集合。 Rows属性:该属性用于获取DataTable对象中表的行集合。 DefaultView属性:该属性用于获取可能包括筛选视图或游标位置的表的自定义视图。,9.5 数据适配器对象(DataAdapter),9.5.2 DataAdapter对象的属性和方法 4. DataTable对象的常用属性 DataTable对象的常用属性主要有Columns属性、Rows属性和DefaultVIew属性。 Columns属性:该属性用于获取DataTable对象中表的列集合。 Rows属性:该属性用于获取DataTable对象中表的行集合。 DefaultView属性:该属性用于获取可能包括筛选视图或游标位置的表的自定义视图。,