06第6章数据库操作.docx

上传人:b****3 文档编号:27198655 上传时间:2023-06-28 格式:DOCX 页数:69 大小:536.71KB
下载 相关 举报
06第6章数据库操作.docx_第1页
第1页 / 共69页
06第6章数据库操作.docx_第2页
第2页 / 共69页
06第6章数据库操作.docx_第3页
第3页 / 共69页
06第6章数据库操作.docx_第4页
第4页 / 共69页
06第6章数据库操作.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

06第6章数据库操作.docx

《06第6章数据库操作.docx》由会员分享,可在线阅读,更多相关《06第6章数据库操作.docx(69页珍藏版)》请在冰豆网上搜索。

06第6章数据库操作.docx

06第6章数据库操作

第6章

 

数据库操作

 

本章知识结构框图

数据库操作概述

离线式数据库操作

连线式数据库操作

操作

数据库的

连接

 

 

程序员的优秀品质之6海纳百川,有容乃大

出自《管子·霸言》:

“海不辞水,故能成其大,山不辞土石,故能成其高;明主不厌人,故能成其众。

”。

晋朝袁宏《三国名臣序赞》写道:

“形器不存,方寸海纳。

”李周翰注:

“方寸之心,如海之纳百川也”;《尚书》也写道。

“尔无忿疾于顽。

无求备于一夫。

必有忍,其乃有济。

有容,德乃大。

大海能容纳百川之水,才能成为大海;山不推辞任何土石,才能成为高山,真正有胸怀远长的人,不会厌弃人才,所以才会人才济济,成就大事业。

做人要象大海能容纳无数江河水一样的胸襟宽广,要豁达大度。

这也是一个人有修养的表现。

中国过去有句俗话,叫做“宰相肚里能行船”。

做一个程序员一定要具有豁达的胸襟。

 

学习激励与案例导航

网易公司首席架构设计师丁磊

丁磊,网易公司首席架构设计师,1971年生于浙江宁波。

2007福布斯中国富豪榜排名第63位,资产75亿元。

1997年6月创立网易公司。

丁磊将网易公司从一个10几个人的私企发展到今天拥有超过1500多名员工,在美国公开上市的知名互联网技术企业。

据易观国际数据统计网易在中国网游市场份额中排名第二。

在创立网易公司之前,丁磊曾是中国电信的一名技术工程师,后来担任美国赛贝斯(中国)公司(Sybase)的技术支持工程师。

他在Internet领域的职业生涯中积累了丰富的经验,是深谙IT产业知识及Internet系统集成技术的出色的专业人才。

网易成立后的最初两年,丁磊1997年11月推出了中国第一个双语电子邮件系统,2000年3月,丁磊辞去首席执行官,出任网易公司联合首席技术执行官,2001年3月,担任首席架构设计师,专注于公司远景战略的设计与规划,2001年6月-9月担任代理首席执行官和代理首席营运官。

2005年11月,丁磊再次出任网易首席执行官。

和丁磊一样,很多计算机领域功成名就的人,最初都曾在专业技术领域拼搏多年,丰富的技术开发经验使他们凭借一个软件或一个网站,走向了人生的辉煌。

从丁磊的发展,我们应该清醒地意识到欲在网络编程领域有所建树,必须先成为编程高手,努力吧,同学们,功到自然成!

6.1ASP.NET数据库操作概述

数据库化是目前网站建设的主流技术,ASP.NET在网络上的应用也离不开数据库技术,ASP.net能使用哪些种类数据库呢?

ASP.net如何使用每种数据库呢?

常用说的ADO.NET又是什么呢?

本节将就这些问题进行详细讲解。

6.1.1数据库概述

网站已经离不开数据库,数据库已经成为当今程序设计的必须部分。

数据库操作与C#语言基础、常见对象、服务器控件一起组成了ASP.NET的四大板块。

而ASP.NET的数据库操作则是这四部分中最重要、应用最频繁的部分。

数据库就是按一定方式把数据组织、储存在一起的集合,就是把各种各样的数据按照一定的规则组织在一起,存放在不同的表中。

数据库管理系统(databasemanagementsystem)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。

它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

常用的数据库管理系统有Oracle、Sybase、Informix、MicrosoftSQLServer、MicrosoftAccess、VisualFoxPro等。

目前ASP.NET最常用的以MicrosoftSQLServer为主。

6.1.2ADO.NET

数据库是独立存在的,各种编程语言都可以使用数据库。

但数据库与编程语言之间需要一个接口。

ASP.NET可以使用各种类型的数据库,ADO.NET是充当ASP.NET与数据库之间的接口。

掌握了ADO.NET的使用方法便掌握了ASP.NET数据库的使用技术,熟练了ADO.NET的常用对象,便可以驾轻就熟地驰骋在ASP.NET的疆场。

ADO.NET本质上是一个类库,其中包含大量的类,利用这些类提供的对象,能够完成数据库的各种操作。

ADO.NET共有5个常用对象,它们是Connection、Command、DataReader、DataSet、和DataAdapter,如表6-1所示。

表6-1ADO.NET常用对象

对象

功能

Connection

数据库连接对象,用于建立数据库的连接。

Command

用于执行数据库命令,针对不同的数据库提供了SqlCommand、OleDbCommand、Odbcommand和OracleCommand几种访问方式,同时也提供从数据库中检索数据、插入数据、修改数据和删除数据的功能。

DataReader

用于读取数据库中的数据,其优点是速度比较快,缺少是但功能有限。

DataSet

DataSet对象是数据在内存中的表示形式。

它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表一样。

DataAdapter

数据库适配器,DataSet对象与数据库之间的桥梁,它通过Fill方法把数据库中的数据映射填充到DataSet对象中,通过Update方法更新数据库中的数据,式DataSet对象中的数据与数据库中的数据保持一致。

6.1.3ADO.NET中的各类数据库接口

我们知道,各类数据库与编程语言之间的连接都需要接口,而ADO.NET便是ASP.NET与数据库之间的接口。

ASP.NET对各类不同的数据库提供了不同的接口。

ADO.NET提供了四种数据驱动程序,分别是SQLServer.NET、OkeD.NET、OracleDb.NET和ODBC.NET数据驱动程序。

其中SQLServer.NET用来访问SQLServer7以及更高级版本,OleDb.NET用来访问包括SQL以及其他类型的数据库,OracleDb.NET专门访问Oracle8iDataReader及以上版本的数据库,ODBC.NET用来访问ODBC数据源。

6.2数据库的连接

ASP.NET中要想使用数据库必须通过ADO.NET ,而数据库使用的第一步便是数据库的连接,如何进行数据库的连接呢?

对各种不同的数据库如何区别对待呢,本节将就这一问题进行详细讲解,以开启ASP.NET使用数据库的第一步之门。

6.2.1数据库连接概述

数据库操作的第一步是建立与数据库的连接。

在ADO.NET中使用Connection对象进行数据库连接。

该对象的属性和方法如表6.2所示。

数据库连接并不复杂,只要执行下列步骤即可完成。

1.引入命名空间,各种数据库的命名空间各不相同。

(1)如果使用的是SQLServer数据库,则在编写的程序头部写下如下代码:

usingSystem.Data.SqlClient;

(2)如果使用的是Access数据库,则在编写的程序头部写下如下代码:

usingSystem.Data.OleDb;

(3)如果使用的是Oracle数据库,则在编写的程序头部写下如下代码:

usingSystem.Data.OracleClient。

2.对Connection对象实例化

(1)SQLServer数据库:

SqlConnectionsqlconstr=newSqlConnection();

(2)ACCESS数据库:

OleDbConnectionoledbconnstr=newOleDbConnection();

(3)Oralce数据库:

OleDbConnectionOracleconnstr=newOracleConnection();

其中斜体部分由编程者自行命名,但成熟和程序员多命名为:

sqlconstr,即sql(SQL数据库)与connection(连接)及string(字符串)三个单词的缩写,合起来意为SQL数据库连接字符串。

3.设置连接语句

设置连接语句,通过ConnectionString来实现,其中sqlconstr是第二步建立的数据库连接实例名。

(1)SQLServer数据库:

sqlconstr.ConnectionString="server=localhost;

database=test;uid=sa;pwd=''",也可以用sqlconstr.ConnectionString="DataSource=localhost;InitialCatalog=test;UserID=sa;Password=''";

(2)ACCESS数据库:

oledbconnstr.ConnectionString="provider=Microsoft.Jet.OLEDB.4.0;datasource='c:

\\lx\\test.mdb'";

(3)Oracle数据库:

Oracleconnstr.ConnectionString="server=MyOraServer;Provider=MSDAORA;userid=sa;password=’’”。

4.打开连接

打开连接直接用sqlconstr.Open()语句,其中sqlconstr是第二步建立的数据库连接实例名。

打开连接后,即可以对数据库进行各种操作,完成全部操作后使用sqlconstr.Open()关闭数据库。

表6-2Connection对象常用属性及方法

属性及方法

功能

ConnectionString属性

用于读取或设置打开数据库的字符串

ConnectionTimeout属性

用于读取数据库尝试连接秒数

DataSource属性

用于读取数据库所在位置及所在位置的服务器名称或文件夹名称

Database属性

用于读取或设置连接的数据库名称

State属性

用于读取当前连接状态

Provider属性

用于读取数据库驱动程序

Open()方法

打开数据连接

Close()方法

关闭数据连接

除了ConnectionString属性外,其他属性属于只读,即用户只能通过连接字符串来配置数据库连接,通过各种属性获取连接信息,而不能更改属性值。

6.2.2连接到Access数据库

Access数据库是微软Office办公软件中的一个产品,是编程者入门级的桌面数据库,一般初学者可以使用这种数据库进行编程练习,其特点是简单易用,在ASP.NET中连接也极其方便。

在ASP.NET中使用OleDb.NET数据接口进行连接Access数据库。

Access数据库的连接字符串的属性如表6-3所示。

表6-3OLEDB.NET数据库连接字符串属性

属性

说明

Datasource

数据源,一般为数据库文件的物理路径

Provider

数据源的驱动程序,一般使用Microsoft.jft.OLEDB.4.0驱动程序。

还可以使用SQLOLEDB驱动程序连接到SQLServer6.5即以上版本数据库,使用MSDAORA驱动程序可以连接到Oracle7数据库

Database

数据库的名称,一般为应用程序使用的数据库名称

Connectiontimeout

表示连接超时的时间,默认为15秒

6.2.3连接到SQLServer数据库

SQLServer数据库是微软公司力推的数据库系统,也是ASP.NET首选数据库系统,同于SQLServer与ASP.NET同出于一家之门,所以他们配合非常默契,使用非常方便。

在ASP.NET中使用SqlClient数据接口连接SQLServer数据库。

连接SQLServer数据库的字符串相关属性如表6.4所示。

表6-4SQLServer数据库连接字符串常用属性

属性

说明

Datasource

SQLServer数据源,即服务器所在机器名称或者是服务器IP地址

Server

服务器如数据库所在服务器名称

Database

数据库名称

UserID

SQLServer数据库的用户ID

Password

SQLServer数据库的用户密码

Pooling

设置是否使用数据库的连接池

IntergratedSecurity

设置登陆数据库时是否使用系统集成验证

Connectiontimeout

表示连接超时的时间,默认为15秒

6.2.4连接到Oracle数据库

Oracle数据库是甲骨文公司主推的数据库系统,它同SQLServer一样,也是ASP.NET常用数据库系统。

Oracle数据库具有较强的可用性、扩展性、安全性、稳定性、移植性和兼容性,因此,它在数据库系统中占有重要地位。

在ASP.NET中使用OracleClient数据接口连接Oracle数据库。

OracleClient数据接口的连接字符串与SqlClient数据接口的连接字符串的相关属性类似,Oracle数据库的连接字符串相关属性如表6-5所示。

表6-5Oracle数据库连接字符串常用属性

属性

说明

Datasource

Oracle数据库的数据源,即服务器所名称也可是服务器IP地址

Server

服务器如数据库所在服务器名称

Database

数据库名称

UserID

Oracle数据库的用户ID

Password

Oracle数据库的用户密码

Pooling

设置是否使用数据库的连接池

IntergratedSecurity

设置登陆数据库时是否使用系统集成验证

Connectiontimeout

表示连接超时的时间,默认为15秒

6.2.5数据库连接实例

表6-6是使用Connection对象连接SQLServer数据库的应用案例,综合用到了Connection对象的各种属性和方法,通过该例题还可以掌握如何打开数据库连接和关闭数据库连接,操作步骤如下:

(1)启动VisualStudio2008,在菜单依次单击【文件】【新建】【网站】【ASP.NET网站】;

(2)在设计窗口页面上点右键,选择查看代码;

(3)在Page_load事件输入表6-6代码;

表6-6使用Connection对象连接数据库代码及解释

程序代码

对应注释

01

02

03

04

05

06

07

08

09

10

11

12

13

usingSystem.Data.SqlClient;

publicpartialclass_5_01:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

SqlConnectionsqlconstr=newSqlConnection();

sqlconstr.ConnectionString="server=localhost;database=MyBookShop;uid=sa;pwd=''";

sqlconstr.Open();

Response.Write(''数据库已经打开");

sqlconstr.Close();

}

}

01

02

03

04

05

06

07

08

09

10

11

12

13

引用SqlClient命名空间

 

Connection对象实例化

通过ConnectionString来获取或设置连接语句

打开连接

关闭连接

(4)按下CTRL+F5运行程序,得到如下程序界面:

图6-1数据库连接实例

6.3连线式操作数据库

数据库连接完成后,接下来就要进行数据库操作了。

数据库操作有两种方法使用,一种是连线方式,另外一种是离线方式。

连线方式对数据库只能执行读操作,而不能进行修改、增添记录等操作。

离线方式具有比连线方式更强大的功能。

6.3.1连线式操作数据库概述

连线式数据库操作就如同使用手机进行通话。

首先通过基站建立两部手机之间的连接,然后进行通话。

在通话的过程中,两部手机之间必须保持连接状态,直到通话结束才能够挂断。

如果一方挂断,将无法继续通话。

连线式数据库操作同样也需要应用程序与数据库先建立连接,然后,才能够传输数据,并且需要在传输数据的过程中一直保持与数据库之间为连线状态。

最后,当数据传输完毕后,才能够断开与数据库的连接。

如果中间连接断开,则应用程序会出现严重错误。

进一步地,手机之间通话是会出现占线的现象,也就是说对于手机之间同一时间通话的手机数量是有限的。

对于数据库来说这也是一样的。

对于同一个数据库,它在同一时间仅能够接受有限的连接。

如果超过数据库连接个数的限制,则应用程序将无法连接到数据库。

当进行网站设计时,由于大多数情况下会出现多个用户浏览和操作数据,因此,上述连线式数据库操作并不是很适合。

但是,连线式数据库操作也有它自身的优点,那就是它能够高效快速的访问数据库。

对于非网站设计方面的应用,它是非常不错的选择。

连线式数据库操作所涉及的组件主要由ADO.NET中的Framework数据提供程序提供。

它主要包括Connection、Command和DataReader三个对象。

一般情况下,连线式数据库操作通过联合使用上述三个对象完成。

6.3.2连线式操作数据库的流程

1.设定数据库连接字符串

2.打开数据库

3.使用Command对象向数据库下达操作命令。

4.使用DataReader对象进行各种读取操作。

5.关闭数据库

6.3.3连线式所使用的Command对象详解

Command对象在连线式数据库操作中起到定义数据库可执行命令的作用。

这些可执行命令包括SQL语句、数据表、存储过程和其他数据提供者支持的文本格式。

可以通过Command对象实现方便的以下两个功能:

(1)使用Command对象执行SQL语句,并返回相应的结果。

(2)使用Command对象执行存储过程。

使用Command对象执行SQL语句时,首先需要创建Command对象,然后将完成数据库连接操作的Connection对象指定给Command对象的ActiveConnection属性,接着再把SQL命令语句指定给CommandText属性,最后调用Execute方法向数据库下达命令。

使用Command对象调用存储过程时,首先需要创建Command对象,然后将Command对象的CommandType属性设置为StoredProcedure,并使用Command的Parameters属性访问输入及输出参数和返回值,最后通过Command对象的Execute方法执行存储过程。

表6-7给出了Command对象常用属性及方法。

表6-7Command对象常用属性及方法

属性

说明

CommandText

用于读取或设置要执行的SQL语句或存储过程

CommandTimeout

用于读取或设置执行命令需要等待的时间

CommandType

用于读取或设置CommandType命令的类型

Connection

用于读取或设置命令所使用的连接对象

Parameters

用于读取与该命令关联的参数集合

Transaction

用于读取或设置执行命令的任务

ExecuteReader()

执行查询,并返回查询数据

ExecuteScalar()

执行查询,并返回查询数据第一行第一列数据值

ExecuteNonQuery()

执行非查询命令,并返回受影响的行数

ExecuteXmlReader

执行查询,返回XML数据

Cancel

取消执行命令

6.3.3.1创建Command对象

创建Command对象的方式包括两种

(1)先声明一个Command对象,然后设置相应的CommandText和Connection属性。

(2)创建Command对象时直接对CommandText和Connection属性进行赋值。

其中由于第一种方式可读性较好,因此,一般采用第一种方式创建Command对象。

以下语句给出了两种创建Command对象的方式。

//第一种方式

SqlCommandmyCommand=newSqlCommand();

//第二种方式

SqlCommandcatCMD=newSqlCommand("SELECTCategoryID,CategoryNameFROMCategories",nwindConn);

6.3.3.2使用Command对象

使用Command对象操作数据库的方法主要有以下四种:

1.读取整个数据表。

使用Command对象读取数据表需要使用ExecuteReader方法。

该方法返回一个只读的数据表。

它的功能主要是用来执行基本的SQL数据查询。

表6-8是通过ExecuteReader方法执行读取整个数据表,并绑定GridView控件的应用案例,运用到了Command对象的ExecuteReader方法,操作步骤如下:

(1)启动VisualStudio2008,在菜单上依次单击【文件】【新建】【网站】【ASP.NET网站】;

(2)在工具箱上拖曳或双击DataView图标至设计窗口;

(3)在设计窗口页面上点右键,选择查看代码,在Page_load事件输入表6-8代码;

表6-8读取整个数据表程序代码及解释

程序代码

对应注释

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

usingSystem.Data.SqlClient;

publicpartialclass_5_02:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

SqlConnectionsqlconstr=newSqlConnection();

sqlconstr.ConnectionString="server=localhost;database=MyBookShop;uid=sa;pwd=''";

stringsafeSql="Select*FROMbook";

SqlCommandcmd=newSqlCommand(safeSql,sqlconstr);

sqlconstr.Open();

SqlDataReadermyReader=cmd.ExecuteReader();

this.GridView1.DataSource=myReader;

GridView1.DataBind();

sqlconstr.Close();

}

}

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

 

设置数据库连接字符串

设置SQL语句

command对象实例化

打开数据库

执行查询命令

绑定数据源

关闭数据库

(4)按下CTRL+F5运行程序,得到如下程序界面:

图6-8读取数据表实例

2.执行SQL命令。

使用Command对象执行SQL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1