在这2个事件处理器中我们都要检验e.AffectedRows 属性,如果为0,设置Label控件ConcurrencyViolationMessage的Visible属性为true。特别的,在RowUpdated事件处理器中,我们通过将GridView控件的KeepInEditMode属性设置为true,使其保持在编辑状态。这样的话,通过GridView的DataBind() 方法,将他人已经成功更新的数据显示在编辑状态。
如图9所示,当发生并发冲突时,显示提示信息
图9:当发生并发冲突时,显示提示信息:
总结:
创建一个应用程序时,当多人同时编辑相同数据的时候,要考虑到并发冲突的问题。在默认情况下,ASP.NET数据Web控件和数据源控件没有采取并发控制。就像我们在本章看到的一样,对SqlDataSource控件使用开放式并发控制还是比较迅速和容易的。通过在UPDATE和DELETE语句里扩展WHERE字句,SqlDataSource能应对绝大部分情况,但就像在“正确处理NULL值”部分探讨的那样,对包含NULL值列的处理有漏洞。
本章是对SqlDataSource考察的完结篇,接下来的教程继续探讨层次结构以及用bjectDataSource处理数据。
祝编程快乐!
作者简介
本系列教程作者 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用 微软Web技术。大家可以点击查看全部教程《[翻译]Scott Mitchell 的ASP.NET 2.0数据教程》,希望对大家的学习ASP.NET有所帮助。
您可能感兴趣的文章: