快速业务通道

ASP.NET 2.0数据教程之五十七:编辑和删除现有的二进制数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
ataSource控件的 delete命令之后再发生。创建这2个事件处理器,代码如下:

// A page variable to "remember" the deleted category''s BrochurePath value
string deletedCategorysPdfPath = null;

protected void Categories_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
  // Determine the PDF path for the category being deleted...
  int categoryID = Convert.ToInt32(e.Keys["CategoryID"]);

   CategoriesBLL categoryAPI = new CategoriesBLL();
   Northwind.CategoriesDataTable categories =
     categoryAPI.GetCategoryByCategoryID(categoryID);
   Northwind.CategoriesRow category = categories[0];

  if (category.IsBrochurePathNull())
    deletedCategorysPdfPath = null;
  else
    deletedCategorysPdfPath = category.BrochurePath;
}

protected void Categories_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
  // Delete the brochure file if there were no problems deleting the record
  if (e.Exception == null)
  {
    // Is there a file to delete?
    if (deletedCategorysPdfPath != null)
    {
       System.IO.File.Delete(Server.MapPath(deletedCategorysPdfPath));
     }
  }
}

在RowDeleting事件处理器里,从 GridView控件的DataKeys集合里获取被删记录的CategoryID值,而在这里,我们 通过e.Keys来访问DataKeys集合。接着,调用类CategoriesBLL的 GetCategoryByCategoryID(categoryID)方法来返回被删记录的信息,若返回的 BrochurePath值不为NULL,那么将其赋值给页面参数deletedCategorysPdfPath, 再在RowDeleted事件处理器里删除文件。

注意:

在RowDeleting事 件处理器里,我们没有返回被删记录的BrochurePath信息,而是将BrochurePath 添加到GridView的DataKeyNames属性,再通过访问e.Keys来获取该记录的值。这 样做虽然稍微增大了GridView的视图状态,但减少了必要的代码,也省了一步访 问数据库。

调用ObjectDataSource控件的delete命令后,紧接着发生 GridView控件的RowDeleted事件,如果删除过程没有异常且 deletedCategorysPdfPath值不为空,那就将对应的PDF文件从文件系统删除。我 们注意到,代码没有删除类的picture,那是因为picture数据是直接存储在数据 库里的,当删除记录时就一起删除了。

添加完上述2个事件处理器后,再 次测试删除。当删除某个类时,其对应的PDF文件也删除了。

下面我们深 入研究添加更新功能以应对类的brochure和picture.第6步探讨更新brochure信息 的技术,第7章探讨更新picture。

第6步:更新类的Brochure

就像 在教程16《概述插入、更新和删除数据》里探讨的一样,如果GridView的数据源 控件支持编辑,那么我们就可以启用GridView控件的编辑功能。当前,名为 CategoriesDataSource的ObjectDataSource控件并不支持编辑,那让我们添加吧 。

点击ObjectDataSource控件的“设置数据源”链接,一直点 到“定义数据方法”界面。由于在CategoriesBLL里对重载的 UpdateCategory方法使用了DataObjectMethodAttribute属性,UPDATE标签的下拉 列表自动的选择了该方法,它包含4个输入参数(不包含Picture)。我们选择另 一个包含5个输入参数的重载的UpdateCategory方法。

ASP.NET 2.0数据教程之五十七:编辑和删除现有的二进制数据

图9:设置ObjectDataSource控件使用包含Picture参数的UpdateCategory方法

ObjectDataSource控件现在包含了UpdateMethod属性以及相应的 UpdateParameters参数集。就像在第4步提到的一样,当使用设置向导时,Visual Studio会将Object

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号