ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节

上传人:E**** 文档编号:90505345 上传时间:2019-06-12 格式:PPT 页数:55 大小:758KB
返回 下载 相关 举报
ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节_第1页
第1页 / 共55页
ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节_第2页
第2页 / 共55页
ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节_第3页
第3页 / 共55页
ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节_第4页
第4页 / 共55页
ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节》由会员分享,可在线阅读,更多相关《ASP.NET程序设计案例教程工业和信息化普通高等教育“十二五”规划教材立项项目教学课件作者杨树林胡洁萍ASP.NET5章节(55页珍藏版)》请在金锄头文库上搜索。

1、第5章 数据库访问技术,杨树林 北京印刷学院,本章要点,数据库访问的基础知识 应用程序结构与数据操作 数据绑定与数据绑定控件 其他数据绑定控件,5.1 数据库访问基础,.NET框架为数据库应用程序的开发提供了强大的支持,借助于ADO.NET可以方便的实现数据的库访问。,5.1.1 ADO.NET简介,ADO.NET是一组向.NET程序员公开数据访问服务的类。ADO.NET为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML和应用程序数据的访问,它是.NET Framework中不可缺少的一部分。ADO.NET体系结构如图5-1所示,其中包含两个核心组件:.NET Fra

2、mework数据提供程序和DataSet,所有相关的类都位于System.Data命名空间下。,.NET Framework数据提供程序是专门为数据库连接、数据操作以及快速、只进、只读访问数据而设计的组件。主要的对象有以下几种。 Connection:连接对象,用于建立一个与数据源的连接。 Command:命令对象,可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 DataReader:只读对象,用来读取数据,只读/只向前移动游标。这种方式获取数据的速度比较快。 DataAdapter:适配器对象,在DataSet对象和数据源之间起到桥梁作用。DataAdapt

3、er使用Command对象在数据源中执行SQL命令以向DataSet中加载数据,并将对DataSet中数据的更改解析回数据源。,DataSet是专门为独立于任何数据源的数据访问而设计的。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个DataTable对象的集合,这些对象由数据行(DataRow)和数据列(DataColumn)以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。此外,DataView允许在一个DataTable上创建视图,一个DataTable上可以定义多个视图。,5.1.2 数据库的连接,应

4、用程序在对数据库进行操作之前,首先需要做的工作是和数据库进行连接,连接要通过ADO.NET的Connection对象完成。Connection对象常用的方法有Open方法和Close方法,分别用来打开和关闭连接。Connection对象的常用属性如下。 ConnecitonString:用来指定连接的字符串。 DataSource:用来获取数据源的服务器名或文件名。 Database:用来指定要连接的数据库名称。 Provider:用来提供数据库驱动程序。 在ADO.NET中,根据数据源的不同,连接对象有四种:SqlConneciton、OleDbConneciton、OdbcConnecit

5、on和OracleConneciton。这里主要介绍前两个。,连接SQL Server数据库 连接Sql Server数据库,要先引用System.Data.SqlClient命名空间,然后使用SqlConnection对象进行连接,一般有以下两种形式。 采用SQL Server身份验证 连接字符串中指定服务器名、用户ID、用户口令、数据库名等信息。例如: string connectString = “server=localhost;uid=sa;pwd=;database=test“; SqlConnection myConnection = new SqlConnection(conn

6、ectString); myConnection.Open();,采用集成的Windows身份验证 连接字符串中指定服务器名、集成安全性、数据库名等信息。例如: string connectString = “Persist Security Info=False;Integrated Security= SSPI;database=northwind;server=localhost;Connect Timeout=30“; SqlConnection myConnection = new SqlConnection(connectString); myConnection.Open();,

7、2. 连接Access数据库 连接Access数据库要引用System.Data.OleDb命名空间,然后使用OleDbConnection对象进行连接。例如: string connectString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source= |DataDirectory|pho.mdb“; OleDbConnection con = new OleDbConnection(connectString); con.Open();,5.1.3 案例5-1连接书城数据库,连接数据库是经常使用的,所以设计一个类封装数据库的连接操作。本案例设计

8、一个ConnectDB类用于连接SQL Server中的书城数据库BookStore,并设计一个ASP.NET网页测试ConnectDB的使用。连接成功显示如图5-2所示界面。,技术要点 将连接字符串配置在Web.config文件中。 借助ConfigurationManager取得连接字符串。 利用SqlConnection建立连接。,5.1.4 数据更新操作,数据更新操作是指对数据表中数据进行增加、修改或删除。一般采用命令对象来完成。 1. 命令对象 命令对象可直接执行SQL语句或存储过程,主要有OleDbCommand、SqlCommand、OdbcCommand和OracleComma

9、nd。 以SqlCommand为例,其构造方法有: SqlCommand()。 SqlCommand(string cmdText)。 SqlCommand(string cmdText, SqlConnection con)。 SqlCommand(string cmdText, SqlConnection con, SqlTransaction trans)。 其中,cmdText为命令文本,con为连接对象,trans为事务对象。,SqlCommand的主要属性有: Connection:指定命令对象所使用的连接。 CommandType:指定命令类型,有三种:StoredProcedu

10、re(存储过程),TableDirect(表),Text(SQL文本命令)(默认)。只有OLE DB提供程序支持TableDirect。对于更新操作执行SQL语句,所以指定为Text。 CommandText:指定命令文本,随CommandType不同,指定的内容不一样,可以是存储过程名,表名,或SQL语句。对于数据更新操一般指定为SQL语句。 Parameters:一个集合对象,用于设置参数。如果数据命令的CommandType属性设置为Text,且SQL语句中包含参数(SQL Server.NET数据提供程序使用命名参数,用参数名前冠以指定;OLE DB.NET数据提供程序使用位置参数,用

11、?占位符指定),就需要为每个参数创建一个Parameter对象,并使用参数集合对象的Add方法将其添到参数集合中。,2. 数据更新操作的基本步骤 以对Sql Server数据库操作为例,数据更新操作的基本步骤如下: (1)建立并打开连接。 (2)建立命令对象。 (3)设置命令对象的属性。 (4)调用ExecuteNonQuery方法执行命令。该方法返回一个整数,表明所影响的行数。 (5)关闭连接。,SqlConnection con = ConnectDB.Connect(); /这里使用自定义的类建立连接 string sql = “delete from BsUser where id =

12、 ID“;/定义sql语句 SqlCommand cmd = new SqlCommand(); /建立命令对象 cmd.Connection = con; /指定连接对象 cmd.CommandType = CommandType.Text; / 指定命令类型为SQL文本命令 cmd.CommandText = sql/指定SQL语句 cmd.Parameters.add(new SqlParameter(“ID“,2); /设置参数 con.Open(); /打开连接 int n = cmd.ExecuteNonQuery(); /执行 con.Close(); /关闭连接,5.1.5 数

13、据查询操作,数据查询就是执行SELECT语句,主要有三种方法。 1. 使用ExecuteScalar方法获得单值 Command对象的ExecuteScalar方法返回单值,该方法用来执行聚合函数。这种查询也称为标量查询。下面的示例代码用于查询用户总数。 SqlConnection con = ConnectDB.Connect(); /这里使用自定义的类建立连接 string sql=“select count(*) from BsUser“; SqlCommand cmd = new SqlCommand(sql,con); /建立命令对象 con.Open(); /打开连接 int co

14、unt=(int)cmd.ExecuteScalar();/执行 con.Close();,2. 使用DataReader对象读取数据 调用命令对象的ExecuteReader方法返回一个数据读取器(DataReader)。DataReader对象很简单,它一次只读取一条数据,而且是向前只读,所以效率很高,并可以降低网络负载。DataReader对象只能配合Command对象使用,而且DataReader对象在操作的时候Connection对象是保持连接的状态。 DataReader主要属性有: FieldCount:获取当前行中的列数。 RecordsAffected:被更改、插入或删除的行

15、数。 IsClosed:指示是否可关闭数据读取器。,DataReader主要方法有: void Close():关闭DataReader对象。 String GetName(int i):获取指定列的名称,参数为列号。 int GetOrdinal(String name):在给定列名称的情况下获取列序号。 XXX GetXXX(int i):用于读取数据集的当前行的某一列的数据,参数为列号。 bool NextResult():当读取批处理SQL语句的结果时,使数据读取器前进到下一个结果。在查询多表时,很有用。多表之间的SQL语句用分号分隔。 bool Read():使DataReader前

16、进到下一条记录。,使用DataReader对象读取数据的基本步骤如下: (1)建立连接。 (2)建立命令对象。 (3)设置命令对象的属性。 (4)打开连接。 (5)调用ExecuteReader方法返回DataReader。 (6)使用DataReader对象读取数据表中的数据,保存到实体对象中。 (7)关闭DataReader对象。 (8)关闭连接。,3. 使用DataSet获得数据 DataSet(数据集)是数据的一种内存驻留表示形式,无论它包含的数据来自什么数据源,它都会提供一致的关系编程模型。在进行查询时,使用数据适配器(DataAdapter)将从数据源获得的数据填充到数据集对象(DataSet),然后可以断开和数据源的连接。使用数据集模型的优越性有: 一个数据集可以包含多个结果表,它将这些表作为离散对象维护。 操作来自多个源的数据,如来自不同数据库、XML文件、电子表格等的数据。 在分布式应用程序中,方便层间移动数据。 便于与其他应用程序进行数据交换。 使用窗体可以将控件绑定到数据集内的数据。 便于编程。,使用DataSet进行查询

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号