• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据

在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据

作者:heker2007 字体:[增加 减小] 来源:互联网 时间:2017-05-11

heker2007通过本文主要向大家介绍了asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net,c#和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

导言

  结束前面的几节,我们已经探讨过了如何使用GridView、DetailsView和FormView控件来显示数据。这些控件简单地操作提供给它的数据。一般地,这些控件通过使用一个数据源控件,例如ObjectDataSource来存取数据。我们已经看过了ObjectDataSource是如何在ASP.NET页面和潜在的数据之间扮演一个代理的角色。当一个GridView需要显示数据时,它调用ObjectDataSource的Select()方法,这个方法转而调用一个来自我们的业务逻辑层(BLL)的方法,继而调用一个适当的数据访问层(DAL)的表适配器(TableAdapter)的方法,从而它发送一个SELECT查询到Northwind数据库。

  记得在我们的教程里当创建DAL中的表适配器时,Visual Studio自动地添加从潜在数据库插入、更新和删除数据的方法。此外,在创建一个业务逻辑层这一节我们已经设计了调用这些数据更改的DAL方法的BLL方法。
除了它的Select()方法,ObjectDataSource还有Insert()、Update()和Delete()方法。跟Select()方法类似,这三个方法映射到一个隐含的对象。当配置插入、更新或删除数据时,GridView、DetailsView和FormView控件提供了一个修改潜在的数据的用户界面。这个用户界面调用ObjectDataSource的Insert()、Update()和Delete()方法,它们继而调用隐含对象的关联方法(见图1)。

http://files.weikejianghu.com/file_images/article/201605/2016050617554991.png

图 1: ObjectDataSource的Insert()、Update()和Delete()方法提供一个到BLL的代理

  本节我们将看看如何映射ObjectDataSource的Insert()、Update()和Delete()方法到BLL中的类,也看看如何配置GridView、DetailsView和FormView控件提供修改数据的功能。

第一步: 创建Insert、Update和Delete教程页面

  在我们开始探讨如何插入、修改和删除数据之前,让我们先花些时间在我们的站点项目里添加这些本节里和下一节里需要的ASP.NET页面。首先添加一个名为EditInsertDelete的新文件夹。然后,在这个文件夹里添加下面这些ASP.NET页面,并且确认每个页面都关联Site.master母版页:

·Default.aspx
·Basics.aspx
·DataModificationEvents.aspx
·ErrorHandling.aspx
·UIValidation.aspx
·CustomizedUI.aspx
·OptimisticConcurrency.aspx
·ConfirmationOnDelete.aspx
·UserLevelAccess.aspx

http://files.weikejianghu.com/file_images/article/201605/2016050617555092.png

图 2: 添加这些与数据更改关联的教程的页面

  类似在其它文件夹里,EditInsertDelete文件夹里的Default.aspx将列出这些教程章节。记得用户控件提供这个功能。因此,从解决方案资源管理器中拖拽一个这个用户控件到页面的设计视图,从而添加它到Default.aspx页面。

http://files.weikejianghu.com/file_images/article/201605/2016050617555093.png

图 3: 添加SectionLevelTutorialListing.ascx用户控件到tDefault.aspx页面

  最后,添加这些页面地址项到Web.sitemap文件。明确地,在Customized Formatting <siteMapNode>后添加如下标记:

<siteMapNode title="Editing, Inserting, and Deleting"
  url="~/EditInsertDelete/Default.aspx"
  description="Samples of Reports that Provide Editing, Inserting,
         and Deleting Capabilities">
  <siteMapNode url="~/EditInsertDelete/Basics.aspx"
    title="Basics"
    description="Examines the basics of data modification with the
           GridView, DetailsView, and FormView controls." />
  <siteMapNode url="~/EditInsertDelete/DataModificationEvents.aspx"
    title="Data Modification Events"
    description="Explores the events raised by the ObjectDataSource
           pertinent to data modification." />
  <siteMapNode url="~/EditInsertDelete/ErrorHandling.aspx"
    title="Error Handling"
    description="Learn how to gracefully handle exceptions raised
           during the data modification workflow." />
  <siteMapNode url="~/EditInsertDelete/UIValidation.aspx"
    title="Adding Data Entry Validation"
    description="Help prevent data entry errors by providing validation." />
  <siteMapNode url="~/EditInsertDelete/CustomizedUI.aspx"
    title="Customize the User Interface"
    description="Customize the editing and inserting user interfaces." />
  <siteMapNode url="~/EditInsertDelete/OptimisticConcurrency.aspx"
    title="Optimistic Concurrency"
    description="Learn how to help prevent simultaneous users from
           overwritting one another s changes." />
  <siteMapNode url="~/EditInsertDelete/ConfirmationOnDelete.aspx"
    title="Confirm On Delete"
    description="Prompt a user for confirmation when deleting a record." />
  <siteMapNode url="~/EditInsertDelete/UserLevelAccess.aspx"
    title="Limit Capabilities Based on User"
    description="Learn how to limit the data modification functionality
           based on the user role or permissions." />
</siteMapNode>
</div>

在更新了Web.sitemap后,花些时间通过浏览器访问本教程站点。左边的菜单里现在包含对应编辑、插入和删除教程的项。

http://files.weikejianghu.com/file_images/article/201605/2016050617555094.png

图 4: 站点地图现在包含了对应编辑、插入和删除教程的项

第二步: 添加并配置ObjectDataSource控件

  因为GridView、DetailsView和FormView控件在数据修改功能和版面上都有所不同,就让我们逐个研究。不过,与其让这三个控件各自使用自己的ObjectDataSource,还不如让我们仅创建一个ObjectDataSource让这个三个控件的例子共用。
打开Basics.aspx页面,从工具箱拖拽一个ObjectDataSource到设计器,从它的职能标记中点击配置数据源链接。因为ProductsBLL类是唯一一个提供修改、插入和删除方法的BLL类,配置该ObjectDataSource使用这个类。

http://files.weikejianghu.com/file_images/article/201605/2016050617555395.png

图 5: 配置ObjectDataSource使用ProductsBLL类

  在下一屏中,通过选择适当的tab页并从下拉列表中选择方法,我们可以指定ProductsBLL类里的哪些方法被映射到ObjectDataSource的Select()、Insert()、Update()和Delete()方法。图6,至今我们应该很熟悉,映射ObjectDataSource的Select()方法到ProductsBLL类的GetProducts()方法。Insert()、Update()和Delete()方法可以通过选择上方的适当的tab页进行配置。

http://files.weikejianghu.com/file_images/article/201605/2016050617555396.png

图 6: 让这个ObjectDataSource返回所有产品

  图7、8和9显示ObjectDataSource的UPDATE、INSERT,和DELETE 的tab页。配置它们从而Insert()、Update()和Delete()方法分别调用ProductsBLL类的UpdateProduct、AddProduct和DeleteProduct方法。

http://files.weikejianghu.com/file_images/article/201605/2016050617555497.png

图 7: 映射ObjectDataSource的Update()方法到ProductBLL类的UpdateProduct方法

http://files.weikejianghu.com/file_images/article/201605/2016050617560498.png

图 8: 映射ObjectDataSource的Insert()方法到ProductBLL类的AddProduct方法

http://files.weikejianghu.com/file_images/article/201605/2016050617560499.png

图 9: 映射ObjectDataSource的Delete()方法到ProductBLL类的DeleteProduct方法

  你也许已经注意到在UPDATE、INSERT和DELETE的tab页里的下拉列表中已经选择了各自的方法。这是由于我们使用了DataObjectMethodAttribute,它修饰了ProducstBLL

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11asp.net 页面逐步呈现的方法总结
  • 2017-05-11如何取得Repeater控件选择的项目及注意事项
  • 2017-05-11ASP.NET程序发布详细过程
  • 2017-05-11asp.net WebForm页面间传值方法
  • 2017-05-11.NET读取Excel文件的三种方法的区别
  • 2017-05-11在ASP.NET 2.0中操作数据之三:创建母版页和站点导航
  • 2017-10-12检测到在集成的托管管道模式下不适用的 ASP.NET 设置
  • 2017-05-11asp.net2.0中css失效的解决方法
  • 2017-05-11ASP.NET 程序优化 小结
  • 2017-05-11ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • mysql安装后.net程序运行出错的解决方法
    • Asp.net cookie的处理流程深入分析
    • ASP.NET与MySQL数据库简明图示入门教程
    • .Net Core简单使用Mvc内置的Ioc
    • ASP.NET Core 导入导出Excel xlsx 文件实例
    • asp.net EncryptHelper 加密帮助类
    • ASP.NET自定义Web服务器控件之Button控件
    • .NET Core中使用Redis与Memcached的序列化问题详析
    • 防止重复提交 仅提交一次的终极绝杀技
    • .NET的DateTime函数获取上个月的起始和截止时间的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有