ImageVerifierCode 换一换
格式:PPTX , 页数:31 ,大小:819.10KB ,
文档编号:7674209      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7674209.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《商务网站设计与开发》课件第14章 数据库应用开发基础.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《商务网站设计与开发》课件第14章 数据库应用开发基础.pptx

1、 数据库接口ADO.NET14.1 连接数据源Connection对象14.2 执行SQL命令Command对象14.3 读取数据DataReader14.4 思考题14.5Web应用程序对数据库服务器的访问需要在网络协议的支持下构建会话(Session),在此基础上,应用程序可以向数据库服务器发出数据的操作请求,比如增加数据、查询数据等,数据库服务器则会根据请求对数据进行操作或返回查询结果。虽然各种不同的RDBMS都尽可能遵循新版本的SQL的标准,但应用程序依然不能用相同的代码来访问不同的RDBMS。这一方面是因为不同的RDBMS中SQL语法并不完全相同,更重要的方面是每个RDBMS都有不同

2、的建立会话、传输SQL、返回数据结果的网络协议。虽然通常RDBMS都会提供一组数据库访问的应用程序接口(API),但对于应用程序的开发者而言,不同的接口函数、不同的协议规则不仅提高了学习的难度,而且当数据库进行升级或移植时难度巨大。如果有一套统一的API作为访问不同RDBMS的接口,则会有效降低开发难度,显著降低开发和维护成本。ApplicationDriver ManagerDriverDriverDriverDataSourceDataSourceDataSourceODBC APIODBC APIODBC的结构图应用系统ADOOLE DB电子表格ODBC SQLISAM目录服务文件系统A

3、DO的结构图ADO.NET数据提供程序ASP.NET或其它应用程序其他Web窗体ConnectionCommandDataAdapterDataReaderDataSetWindows窗体数据库ADO.NET的结构图ADO.NET中包含了一系列核心对象来构建高效、广泛适用的数据库访问方式。其中,Connection对象负责创建于数据源(不一定是RDBMS)的连接;Command对象可以向数据库服务器发出SQL命令,完成数据增、删、改、查,执行存储过程,收发参数信息等;DataReader对象可以产生一个只读的记录集,从而提供高效率的数据读取方式;DataAdapter对象建立了从数据源到Dat

4、aSet对象的桥梁,其中利用了Command对象来执行多种SQL命令以完成DataSet的数据加载和数据回写。ADO.NET引入了DataSet的概念,这是一个驻于内存的数据缓冲区,它可以包含多个类似关系型数据库中的表的对象DataTable。DataSet替代了ADO原有的Recordset对象,提高了程序的交互性和可扩展性,尤其适合于分布式的应用场合。不管数据来源于一个关系型的数据库,还是来源于一个XML文档,都可以用统一的编程模型加载到DataSet中,并对其中的数据进行操作。可以使用Connection对象来连接数据源,而根据数据源的类型(比如SQL Server、Oracle等)要使

5、用DbConnection类的某个子类。例如,访问OLE DB的数据源需要使用OleDbConnection,访问SQL Server数据库需要SqlConnection。名称名称说明说明ConnectionString获取或设置数据库的连接字符串。ConnectionTimeout获取建立连接的最长等待时间,超过等待时间将产生错误。Database获取数据库的名称。DataSource获取数据源(比如数据库服务器)的名称。DbProviderFactory获取数据库提供者的名称。ServerVersion获取服务器版本。State获取连接状态。ConnectionString为可以设置的属性

6、。针对特定的数据源,需要给出特定的“连接字符串”,其中包含了数据库地址、名称、用户名和密码等信息。下面代码给出两个典型的ConnectionString值:Data Source=192.168.1.100;Initial Catalog=crm_db;Persist Security Info=True;User ID=crm_user;Password=123456;Connect Timeout=30或者Data Source=.;Initial Catalog=DbExamples;Integrated Security=True;Connect Timeout=30DbConnect

7、ion类常用方法using System.Data.SqlClient;/构建连接字符串string connectionString=Data Source=.;Initial Catalog=DbExamples;Integrated Security=True;Connect Timeout=30;/实例化SqlConnection对象SqlConnection connection=new SqlConnection(connectionString);connection.Open();/*这里添加代码完成数据的操作*/connection.Close();名称名称说明说明Open根

8、据连接字符串连接数据库。Close关闭数据库连接。BeginDbTransaction开始一个数据库事务。CreateDbCommand创建一个与当前连接相关联的DbCommand对象。GetSchema从数据源中获取架构信息。/在异常处理try/catch块中打开数据连接并完成数据的操作try connection.Open();/*这里添加代码完成数据的操作*/catch(Exception ex)/当出现异常时要执行的语句 Response.Write(ex.Message);finally /无论如何都要执行的语句 connection.Close();/结束SqlConnection

9、对象的范围,并释放对象通过Connection对象建立了与数据库的连接后,就可以使用SQL语言来完成数据的增、删、改、查。这四项数据操作的基本功能可以被简称为CRUD,即Create、Read(或Retrieve)、Update和Delete(或Destroy)。对于数据库中已有的数据表,我们可以通过SQL中的Insert、Delete、Update和Select语句分别来完成增、删、改、查的操作。在ADO.NET中,这些SQL语句通过Command对象传输到数据库服务器中,并获取数据库的反馈。DbCommand类是构建Command对象的基类,它的派生类包括SqlCommand(用于SQL

10、Server数据库)、SqlCommand(用于Oracle数据库)、OleDbCommand(用于OLE DB接口)、OdbcCommand(用于ODBC接口)等。DbCommand类常用属性表名称名称说明说明Connection获取或设置数据库的连接对象CommandType指定CommandText属性中的命令类型,包括:Text、StoredProcedure和TableDirectCommandText获取或设置在数据库中执行的命令CommandTimeout获取或设置命令执行的等待时间,超出时间将报错Parameters获取命令中的参数所对应的参数对象集合 Transaction获

11、取或设置命令所属的事务对象DbCommand类常用方法表NameDescriptionExecuteNonQuery执行非查询语句ExecuteReader执行查询语句并返回一个DbDataReader对象ExecuteScalar执行查询语句并返回结果集的第一行第一列的值(通常用于具有集合函数的查询)Cancel尝试取消命令的执行CreateParameter创建一个DbParameter实例对象使用DbCommand类在数据库中进行数据的增、删、改、查操作,首先在SQL Server数据库中建立了一个名为“tb_客户”的表。字段名字段名类型类型是否可为空是否可为空客户客户IDint不可简称

12、简称nvarchar(10)不可全称全称nvarchar(50)不可行业行业nvarchar(10)不可地址地址nvarchar(50)不可邮编邮编nvarchar(10)可以座机座机nvarchar(50)可以手机手机nvarchar(50)可以联系人联系人nvarchar(50)可以代理商名称代理商名称nvarchar(50)不可创建时间创建时间smalldatetime可以修改时间修改时间smalldatetime可以备注备注nvarchar(50)可以/构建连接字符串string connectionString=Data Source=.;Initial Catalog=DbExam

13、ples;Integrated Security=True;Connect Timeout=30;/构建SQL字符串string queryString=INSERT INTO tb_客户 +(简称,全称,行业,地址,邮编,座机 +,手机,联系人,创建时间,修改时间,备注)+VALUES +(浩瀚,深圳浩瀚电子公司,集成电路,深圳南山区明德路2号,002200,0755-12345678 +,1391111111,李浩瀚,2016-1-1,2016-1-1,新客户);/实例化SqlConnection对象,并规定了SqlConnection对象的范围using(SqlConnection co

14、nnection=new SqlConnection(connectionString)SqlCommand command=new SqlCommand(queryString,connection);/实例化SqlCommand对象 try /在异常处理try/catch块中打开数据连接并完成数据的操作 connection.Open();int i=command.ExecuteNonQuery();Response.Write(执行完毕,+i+条数据受到影响);catch(Exception ex)/当出现异常时要执行的语句 Response.Write(ex.Message);fin

15、ally /无论如何都要执行的语句 connection.Close();/结束SqlConnection对象的范围,并释放对象 上述代码执行了一条INSERT语句,同样的,DELETE和UPDATE语句都可以用以上的代码结构,只是字符串变量queryString的赋值不同而已,例如“删除”数据的操作代码为:string queryString=DELETE FROM tb_客户 WHERE 简称=浩瀚;“修改”数据的操作代码为:string queryString=UPDATE tb_客户 SET 全称=深圳浩瀚医疗器械公司 WHERE 简称=浩瀚;查询操作与非查询操作最大的不同是,查询操作

16、会返回一个查询结果集。对于关系型数据库系统而言,查询结果集是一个二维表,ADO.NET中提供了DataReader对象来读取结果集中的数据。Command对象使用ExecuteReader函数(而不是ExecuteNonQuery函数)实例化一个DataReader对象,随后就可以使用DataReader对象的Read函数来逐条读取结果集中的每一个数据项。/构建SQL字符串string queryString=SELECT TOP 10*FROM tb_客户 WHERE 简称=浩瀚;/实例化SqlCommand对象SqlCommand command=new SqlCommand(queryS

17、tring,connection);/实例化SqlDataReader对象SqlDataReader reader=command.ExecuteReader();while(reader.Read()Response.Write(简称:+reader简称+;);Response.Write(全称:+reader全称+;);Response.Write();完成对数据的各种增、删、改、查操作是建立数据库管理系统的基石,不论操作有多么复杂,本质上都是形成各种SQL语句传输到数据库服务器中来执行。ASP.NET程序的主要任务就是提供用户界面以获取用户对数据的操作需求,下面我们通过简单的ASP.NE

18、T代码把上述的数据增、删、改、查操作继承在一个页面中。可以使用Command对象向数据库传输增、删、改、查的SQL指令。对于非查询的操作,SQL Server服务器会返回操作所影响的行数,而对于查询操作,则返回一个二维表结构的结果集,这是就需要DataReader对象来读取这些数据。DataReader对象读取数据时只能从头到尾单向读取(forward-only),这主要是出于效率的考虑。实际上这种单向读取数据的方式完全满足Web程序设计的需求。DbDataReader类是构建DataReader对象的基类,它的派生类包括SqlDataReader(用于SQL Server数据库)、Oracl

19、eDataReader(用于Oracle数据库)、OleDbDataReader(用于OLE DB接口)、OdbcDataReader(用于ODBC接口)等。DbDataReader类常用属性表名称名称说明说明Depth获取当前行的嵌套深度值FieldCount获取当前行的字段数量HasRows获取是否包含一行或多行数据IsClosed获取是否DataReader已经关闭ItemInt32通过字段序号获取指定字段的值ItemString通过字段名称获取指定字段的值VisibleFieldCount获取可见字段的数量DbDataReader类常用方法表名称名称说明说明Read将读取器前进到结果集

20、中的下一个记录。Close关闭DataReader对象。Dispose释放DataReader对象实例所使用的所有资源。GetBoolean获取指定列的布尔值形式的值。GetByte获取指定列的字节形式的值。GetBytes从指定列读取一个字节流读到缓冲区中。GetChar获取指定列的单个字符串形式的值。GetChars从指定列读取一个字符流。GetDecimal获取指定列的Decimal对象形式的值。GetDouble获取指定列的双精度浮点数形式的值。GetFloat获取指定列的单精度浮点数形式的值。GetGuid获取指定列的全局唯一标识符(GUID)形式的值。名称名称说明说明GetInt1

21、6获取指定列的16位有符号整数形式的值。GetInt32获取指定列的32位有符号整数形式的值。GetInt64获取指定列的64位有符号整数形式的值。GetDateTime获取指定列的DateTime对象形式的值。GetString获取指定列的作为String的实例的值。GetValue获取指定列的作为Object的实例的值。GetValues使用当前行的列值来填充对象数组。IsDBNull获取一个值,该值指示列是否为空(NULL)。GetName给定了从零开始的列序号时,获取列的名称。GetOrdinal给定列名称时,获取列序号。GetDataTypeName获取指定列的数据类型的名称。Get

22、FieldType获取指定列的数据类型。NextResult读取批处理语句的结果时,使读取器前进到下一个结果。在DbDataReader类的方法中有多个以某种类型获取数据的方法,比如GetString、GetInt32等,这些方法虽然可以获取指定列的值,但参数中只能用使用列序号,而不能使用列的名称。比如下列三行代码都可以获得第2列(字段名为“简称”)的值,并输出到HTML中:Response.Write(简称:+reader1+;);Response.Write(简称:+reader简称+;);Response.Write(简称:+reader.GetString(1)+;);当然,使用列序号

23、需要注意,与C/C+语言一样,C#的数组下标是从0开始的;另外,使用列名称的可读性和可维护性都要更优。特别是,如果使用列序号,一旦数据库表中的列顺序发生变化,可能会带来程序的运行异常。使用Command对象执行SQL查询命令时已经给出了使用DataReader对象的方法,其中与DataReader对象有关的核心代码如下:string queryString=SELECT TOP 10*FROM tb_客户 WHERE 简称=浩瀚;/构建SQL字符串/实例化 SqlCommand对象SqlCommand command=new SqlCommand(queryString,connection)

24、;SqlDataReader reader=command.ExecuteReader();/实例化SqlDataReader对象while(reader.Read()Response.Write(简称:+reader简称+;);Response.Write(全称:+reader全称+;);Response.Write();reader.Close();在Response对象输出字符串时,输出一个完整的内容。Response.Write();/输出Table的起始标签Response.Write(简称全称);/输出标题行while(reader.Read()Response.Write(+re

25、ader简称+reader全称+);/输出数据行 Response.Write();/输出Table的终结标签为了提高开发效率,ASP.NET提供了大量的Web服务器控件,其中在服务器端运行的Table控件就可以很好地帮助构建HTML中的。while(reader.Read()TableRow tempRow=new TableRow();TableCell tempCell=new TableCell();tempCell.Text=reader简称.ToString();tempRow.Cells.Add(tempCell);tempCell=new TableCell();tempCel

26、l.Text=reader全称.ToString();tempRow.Cells.Add(tempCell);Table1.Rows.Add(tempRow);对于广泛的数据库应用开发需求,ASP.NET专门提供了许多针对结构化数据的Web服务器控件,其中Repeater控件就可以简化多条数据的迭代输出的开发工作。Repeater控件是一个数据绑定容器控件,用于生成多条数据的列表。我们可以使用Repeater中的子元素来设定数据的布局,当前行的某个字段值可以用来获取。当页面运行时,Repeater控件为数据源中的每条数据重复该布局。简称 全称 在DataReaderExample.aspx中添加按钮“btRepeater”,并设置此按钮的点击事件响应函数如下:protected void btRepeater_Click(object sender,EventArgs e)/设置并绑定数据源 Repeater1.DataSource=reader;Repeater1.DataBind();(1)比较说明ADO.NET与ADO、ODBC在结构上的异同。(2)Connection对象的主要作用是什么?如何建立一个数据库连接?(3)Command对象的主要作用是什么?DataReader对象的主要作用是什么?两者在功能上有何异同?

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|