asp06.htm
来自「VB.NET网络编程指南 书籍语言: 简体中文 书籍类型」· HTM 代码 · 共 222 行 · 第 1/2 页
HTM
222 行
DELETE语句的语法格式如下:<br>
DELETE FROM table_names [WHERE…] <br>
例如,以下语句从students表中删除姓名为“罗亮”的记录:<br>
DELETE FROM students WHERE name = ‘罗亮’ <br>
3. 更新数据语句UPDATE <br>
UPDATE语句的语法格式如下:<br>
UPDATE table_name SET Field_1=expression_1[,Field_2=expression_2…]<br>
[FROM table1_name|view1_name[,table2_name|view2_name…]]<br>
[WHERE…] <br>
例如,以下语句将计算机系的学生的总分增加10:<br>
UPDATE students SET totalscore = totalscore +10 WHERE department = ‘计算机’<br>
6.4 存储过程<br>
使用存储过程的优点是:更快的执行速度、降低网络流量、资源共享和安全操作、灵活的编程及维护方式。<br>
在SQL Server 2000中创建存储过程的SQL命令是Create Procedure,其语法格式如下:<br>
Create Procedure的语法:<br>
CREATE PROC[EDURE] procedure_name [ ; number ] /* 定义存储过程名 */ <br>
[ { @parameter data_type } /* 定义参数的类型 */ <br>
[ VARYING ] [ = default ] [ OUTPUT ] ] /* 定义参数的属性 */ <br>
[ ,...n1 ] <br>
[ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION }] /* 定义存储过程的处理方式 */
<br>
[ FOR REPLICATION ] AS sql_statement [ ...n2 ] /* 执行的操作 */ <br>
【例】在数据库Student中创建3个存储过程studentInfo、studentScore和studentUpdate。studentInfo的功能为返回学号、姓名、课程名、成绩和学分;studentScore根据学号和课程号查询该学生的姓名及指定课程的成绩;studentUpdate的功能是:首先判断所操作的表students是否存在,若不存在,则返回出错值(-1);若表存在则根据参数所指定的学生学号存在与否进行不同的操作,若给定的学号存在,则将该学号的学生信息修改为指定的其余各参数值,若给定的学号不存在,
则插入该学生信息;操作完毕后返回更新后的student表数据。<br>
创建存储过程studentInfo的SQL命令如下:<br>
Use Student /* 检查是否studentInfo存储过程是否已存在,若是则删除 */ <br>
If Exists ( Select name From sysobjects Where name = 'studentInfo' and
type='P') <br>
Drop Procedure studentInfo Go /* 创建存储过程studentInfo */ <br>
CREATE PROCEDURE studentInfo AS <br>
Select A.studentid,A.name,coursename,grade<br>
From students A,courses B,grades C Where A.studentid = C.studentid and
B.courseid = C.courseid Go<br>
创建存储过程studentScore的SQL命令如下:<br>
Use Student /* 检查是否studentScore存储过程是否已存在,若是则删除 */<br>
If Exists ( Select name From sysobjects Where name = 'studentScore' and
type='P')<br>
Drop Procedure studentScore Go /* 创建存储过程studentScore */ <br>
CREATE PROCEDURE studentScore ( @sid VarChar(8), @cid VarChar(6), @haveit
int=0 OUTPUT ) AS <br>
Select @haveit = grade From students A,courses B,grades C Where A.studentid=C.studentid
and B.courseid=C.courseid and A.studentid=@sid and C.courseid=@cid GO
<br>
创建存储过程studentUpdate的SQL命令如下:<br>
CREATE PROCEDURE dbo.studentUpdate (@studentid varchar(10),@name varchar(10),@sex
bit,@birthday DateTime, @department VarChar(20),@totalscore int) /* 接收传入的外部参数值
*/ <br>
AS declare @row integer <br>
if OBJECT_ID('students') is not null /* 判断表students是否存在 */ <br>
begin /* 取得符合指定studentid值的记录数 */ <br>
select @row=count(studentid) from students where studentid=@studentid
<br>
if @row=0 /* 如记录为0,插入新记录,否则更新已存在的记录 */<br>
INSERT INTO students (studentid,name,sex,birthday,department,totalscore)
VALUES (studentid,name,sex,birthday,department,totalscore)<br>
else<br>
UPDATE students SET name=@name, sex=@sex,birthday=@birthday,department=@department,totalscore=@totalscore
where studentid=@studentid SELECT * FROM students /* 返回表students最新信息 */<br>
end<br>
else<br>
return –1 /* 返回不存在表students的标志信息 */ <br>
RETURN<br>
6.5 ADO.NET模型<br>
6.5.1 ADO.NET模型<br>
ADO.NET(ActiveX Data Object .NET)的是功能强大的数据访问接口,通过ADO.NET访问数据库的编程接口如图所示。
</p>
<p align="center"><img src="image/slide6image002.PNG" width="503" height="269"></p>
<p> 从图6.14可看出,ADO.NET使用SQL Server .NET或OLE DB数据提供程序来访问数据源。 SQL Server
.NET和OLE DB .NET数据提供程序访问物理数据库的结构如图所示。</p>
<p align="center"><img src="image/slide6image003.PNG" width="519" height="169"></p>
<p>6.5.2 ADO.NET结构 <br>
与ADO的连接传输模式不同,ADO.NET使用不连接的传输模式。ADO.NET对象模型的两个主要成员是.NET数据提供程序和DataSet对象。.NET数据提供程序
?是数据库的访问接口,负责建立连接和数据操作。ADO.NET的结构如图所示。 </p>
<p align="center"><img src="image/slide6image004.PNG" width="396" height="316"><br>
<img src="image/slide6image005.PNG" width="104" height="63"></p>
<p>1. 数据集对象DataSet ADO.NET的主角是DataSet,它是一个内存数据库,如图所示。</p>
<p align="center"><img src="image/slide6image006.PNG" width="366" height="182"></p>
<p> DataSet提供方法对数据集中表数据进行浏览、编辑、排序、过滤或建立视图(View)。DataSet对象模型如图所示。由图可知,DataSet对象中的表(即DataTable对象)存放在表集合(DataTableCollection对象)中,通过DataTableCollection来访问表。
</p>
<p align="center"><img src="image/slide6image007.PNG" width="393" height="369"></p>
<p> 2. .NET数据提供程序 ADO.NET的两个数据提供程序的功能已经介绍过了,这里讨论其对象结构。两种数据提供程序都包含Connection、Command、DataReader和DataAdapter四个对象。这些对象的作用列于表中。
</p>
<p align="center"><img src="image/slide6image008.PNG" width="629" height="264"></p>
<p> 3. ADO.NET命名空间 .NET框架的命名空间(Namespace),相当于Library(*.dll),它包含了应用程序将会使用的动态链接库。表列出的是基本类。
</p>
<p align="center"><img src="image/slide6image009.PNG" width="499" height="168"></p>
<p>例如,若在程序中访问SQL Server 2000,则需要使用以下语句:<br>
<%@ Import Namespace="System.Data" %><br>
<%@ Import Namespace="System.Data.SqlClient" %><br>
若在程序中访问OLE数据源或SQL Server 6.5或更前的版本,则需要使用以下语句:<br>
<%@ Import Namespace="System.Data" %><br>
<%@ Import Namespace="System.Data.OleDb" %><br>
可将ADO.NET命名空间下的类分为以下三组:<br>
(1) SQL数据库常用的类<br>
(2) OLE DB数据库常用的类<br>
(3) 数据集及相关类 6.5.3 ADO.NET数据库操作使用ADO.NET的类来执行常规数据库操作,包括查询、添加、更新和删除数据等。<br>
6.5.4 数据显示<br>
一个完整的Web数据库应用是由数据展示层、业务逻辑层和数据层组成的,如图所示。</p>
<p align="center"><img src="image/slide6image010.PNG" width="383" height="365"></p>
<p>6.5.5 VS.NET数据控件<br>
VS.NET的数据库访问控件位于“工具箱”的“数据”工具箱中。注意到在VS.NET中DataReader类没有对应的可视化控件
<br>
6.5.6 VS.NET数据管理 <br>
VS.NET中集成了对数据的管理操作,使得开发者不必切换到数据库管理系统中就 可以方便地进行对数据库中的表进行插入、删除记录,创建和修改存储过程等操作。
<br>
6.5.7 ASP.NET数据库应用程序开发<br>
在ASP.NET中开发数据库应用程序,既可以使用VS.NET提供的数据控件,也可以 通过编写程序代码实现对数据库的操作。</p>
<p align="center"><a href="index.htm">回首页</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?