ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程
Delete存储过程.
注意: 在前几章我们处理的是NorthwindWithSprocs数据集,该数据集只有一个 实体——ProductsDataTable,但是我们将会遇到处理categories的情 况。因此,在本文后面部分,当我提到数据访问层(Data Access Layer)时,我指 的是Northwind数据集,也就是我们在第1章《Creating a Data Access Layer》 里创建的那个. 打开Northwind数据集,选中CategoriesTableAdapter并打 开其属性窗口,该窗口列出了该TableAdapter用到的InsertCommand, UpdateCommand, DeleteCommand, 以及SelectCommand,以及name和数据库连接信 息.展开DeleteCommand属性查看其细节.如图15所示,DeleteCommand的 ComamndType属性被设置为Text, 其文本信息作为一个ad-hoc SQL查 询. 图15:在CategoriesTableAdapter的属性窗口查看其属性信息 让我们来作一些修改.选中“(DeleteCommand)”文本,然后在下拉列 表里选“(New)”,这将清除掉CommandText, CommandType,Parameters属性的设置。接着将CommandType属性设置为 StoredProcedure,然后在CommandText属性里输入存储过程的名称(即 dbo.Categories_Delete).如果你是按照先设置CommandType属性再设置 CommandText属性的顺序的话,Visual Studio将自动生成Parameters collection(参数集).如果你没有按照这个顺序来的话,你就只能点击Parameters 属性里的一个椭圆型的区域来打开Parameters Collection Editor对话框,手动 添加参数.不管是自动的还是手动添加参数,我们都应该打开Parameters Collection Editor对话框以检查参数是否正确(如图16).如果你在对话框里没看 到任何的参数,那么就手动添加参数@CategoryID,(你不需要添加参数 @RETURN_VALUE). 图16:确保参数设置正确 当DAL完成更新后,删除一个category 将自动的删除所有其对应的product,这些操作都置身于一个事务里.我们来做个 验证,重返刚才那个页面,当单击某个category的Delete按钮时,该category及 其所有的product都会被删除. 注意: 在测试Categories_Delete存 储过程前,最好对数据库做个备份,因为该存储过程将删除选中的category及其 对应的product.如果你用的是App_Data文件夹里的NORTHWND.MDF数据库的话,你 只需要关闭Visual Studio并将文件夹里的MDF和LDF文件拷贝到其它文件夹.测试 完毕后,关闭Visual Studio,再用备份的MDF和LDF文件覆盖掉App_Data文件夹的 对应文件. 结语: 虽然TableAdapter向导可以自动的生成存储过程 ,但是在某些时候我们需要使用现有的存储过程。在本文,我们考察了如何在 Visual Studio环境里手动添加存储过程,并引导TableAdapter的方法使用这些存 储过程。另外我们还考察了在存储过程里用来开启、提交、回滚事务的T-SQL commands 和script脚本模式. 祝编程快乐! 作者简介 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是 4GuysFromRolla.com的创始人,自1998年以来一直应用 微软Web技术。Scott是个 独立的技术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作, 24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也 可以通过他的博客http://ScottOnWriting.NET与他联系。 本文配套源码 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |