快速业务通道

ASP.NET 2.0数据教程之六十七:在TableAdapters里创建新的存储过程

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

返回“ASP.NET 2.0数据教程目录”

导言:

本教程的Data Access Layer (DAL)使用的是类型化的数据集 (Typed DataSets).就像我们在第一章《Creating aData Access Layer》里探讨 的一样,该类型化的数据集由强类型的DataTable和TableAdapter构成。 DataTable描绘的是系统里的逻辑实体而TableAdapter引用相关数据库执行数据访 问,包括对DataTable填充数据、执行返回标量数据(scalar data)的请求、添加 ,更新,删除数据库里的记录等.

TableAdapter执行的SQL命令要么是某 个特定的SQL statements,比如SELECT columnList FROM TableName;要么是存储 过程.本教程前面部分的TableAdapter使用的是SQL statements.不过很多开发者 和数据库管理员基于安全、便于维护等方面的考虑,偏爱使用存储过程;不过也 有的人出于灵活性的考虑偏爱使用SQL statement.就我自己而言,我也偏向于存 储过程.在前面的文章,出于简化的目的我选用的是SQL statements.

当定 义一个新TableAdapter或添加新方法时,使用TableAdapter的设置向导,我们可 以很容易的创建新的或使用现有的存储过程.在本文,我们将考察如何使用设置向 导自动的生产存储过程。在下一章我们考察如何设置TableAdapter的方法使用现 有的或手动创建存储过程.

注意:

关于讨论到底使用存储过程还是 使用SQL statements的问题,可参考Rob Howard的博客文章《Don’t Use Stored Procedures Yet?》 (http://weblogs.asp.net/rhoward/archive/2003/11/17/38095.aspx)和Frans Bouma的博客文章《Stored Procedures are Bad, M’Kay?》 (http://weblogs.asp.net/fboue/2003/11/18/38178.aspx)

存储过程基 础

一个存储过程由一系列的T-SQL statement组成,当调用该存储过程时 就执行这些T-SQL statement.存储过程可以接受0到多个输入参数,返回标量值、 输出参数,或最常见的返回SELECT查询值.

注意:存储过程Stored procedures也经常引用为“sprocs” or “SPs”.

可以使用T-SQL statement语句CREATE PROCEDURE来创建存储过程.比如下面的T- SQL脚本创建了一个名为GetProductsByCategoryID的存储过程,它有一个名为 @CategoryID的参数,并且将表Products里与CategoryID值相吻合的那条记录的 ProductID, ProductName, UnitPrice,以及Discontinued值返 回.

CREATE PROCEDURE GetProductsByCategoryID
(
   @CategoryID int
)
AS

SELECT ProductID, ProductName, UnitPrice, Discontinued
FROM Products
WHERE CategoryID = @CategoryID

创建后,我们可以用下面的代码调用 它:

EXEC GetProductsByCategory categoryID

注 意:

在下篇文章我们将在Visual Studio IDE集成环境里创建存储过程.不 过在本文,我们将用TableAdapter向导来自动创建存储过程.

除了返回数 据外,我们还可以在一个事务里用存储过程执行多条数据库命令.比如,假如有一 个名为DeleteCategory的存储过程,其包含一个输入参数@CategoryID,并执行2 个DELETE statemets,第一个是删除相关的products,第二个是删除category。 存储过程里面的多个statements并不是自动的封装在一个事务里的.我们应添加额 外的T-SQL commands以确保存储过程里的多条数据库命令当成原子操作处理.我们 将在后面的内容考察如何用事务来封装存储过程的命令.

当在体系的某个 层使用存储过程时,Data Access Layer的方法将调用某个具体的存储过程而不是 发出一个SQL statement命令.这样一来我们可以发现、分析发出的查询命令.并可 以更清楚的看到数据库是如何使用的.有关存储过程基本原理的更多信息,可参考 本文结束部分的延伸阅读.

第一步:创建数据访问层高级场景的Web页面

在开始之前,让我们花点时间

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号