惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
GRAHAM CLULEY
V
V2EX
WordPress大学
WordPress大学
博客园 - Franky
Last Week in AI
Last Week in AI
博客园 - 司徒正美
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
V
Visual Studio Blog
C
CERT Recently Published Vulnerability Notes
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
Attack and Defense Labs
Attack and Defense Labs
腾讯CDC
The Hacker News
The Hacker News
Hugging Face - Blog
Hugging Face - Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
J
Java Code Geeks
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
A
Arctic Wolf
量子位
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
雷峰网
雷峰网
博客园_首页
Google Online Security Blog
Google Online Security Blog
Spread Privacy
Spread Privacy
罗磊的独立博客
H
Hacker News: Front Page
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
TaoSecurity Blog
TaoSecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
IT之家
IT之家
The Cloudflare Blog
爱范儿
爱范儿
博客园 - 叶小钗
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 蓝箭GZ

[转载]AgileEAS.NET 敏捷软件开发平台 致力于中小企业快速应用开发 原创:分享通过简单设置提速3D游戏!(如果内存大,请禁用虚拟内存。) 原创:EXT2.0通过ASP动态生成json数据并分页! 原创:分享大内存的XP系统终极优化经验! 原创:VS2005开发的一些实用经验一(VB.NET--WINFORM) 转贴:Vbs脚本编程简明教程! 终于找到一款非常强大的程序代码编辑器PrimalScript v4.0.484汉化版! 空牙-游戏音乐合成视频 转:怀念街机的那段传奇历史 原创:ASP.NET2.0中使用AJAX1.0控件的一点经验 原创:Flash cs3 等软件不能在win2003sp1上安装的问题解决(安装遇到错误无法继续, 无法访问Windows Installer服务......) 原创:简单的ASP无组件上传原理实践总结! 转贴:检测系统颜色与使用字体 原创:我理解的ActiveX组件和对象 (转贴) Microsoft XML 分析器 (MSXML) 的版本列表 (转贴) Microsoft .NET Framework 的版本列表 关于网上的一篇很好的文章(RECORDSET对象详解)所存在的错误! (转贴) ADO.NET的开发场景及传统ADO的处理 (转贴) 数据库设计三大范式应用实例剖析
原创:基于VB的ASP.NET2.0的事务及错误处理
蓝箭GZ · 2008-03-13 · via 博客园 - 蓝箭GZ

有数据库school中的两个表student,course,结构如下:

student

主键:stu_id

stu_name

外键:course_id

course

主键:course_id

        course_name

问题:

当关联表带外键约束时,册除父表项时,由于其关联子表尚不为空,就会出错:

DELETE 语句与 COLUMN REFERENCE 约束 'FK student_ course ' 冲突。该冲突发生于数据库 'school',表 'student', column 'course_id'。语句已终止。

处理:

使用两个GridView,勾选“使用删除”选项,以及它的数据源的高级选项中勾先“生成INSERTUPDATEDELETE语句”

如果只是这样设置,删除时就会出上面的错误提示,如何不弹出这个系统提示,而弹出自己设置的提示信息,以下是一个可行的办法:

1.数据源控件,提供了事务和错误的处理方法,事务方法加入如下代码:

加入命名空间:imports System.Data.Common

2.在数据源控件的deleting事件中加入:

   '这是事务的定义

        Dim cmd As DbCommand = e.Command

        Dim conn As DBconnection = cmd.connection

        conn.Open()

        Dim tran As DbTransaction = conn.BeginTransaction()

        cmd.Transaction = tran

3.在在数据源控件的deleted事件中加入:

'这是事务的处理

        If (e.Exception Is Nothing) Then

            e.Command.Transaction.Commit()

           ‘ MsgBox("删除成功!")
                Response.Write(" <script> alert( '删除成功!'); </script> ")
            

        Else

            e.Command.Transaction.Rollback()

            e.ExceptionHandled = True   这行要加,表示错误已处理,否则错误会继续传下去,还是会出现上面的错误提示

           Response.Write(" <script> alert( '下级子菜单未空,不能删除主菜单!'); </script> ")
         ‘MsgBox("
下级子菜单未空,不能删除主菜单!")   '这个在VS的调试时(服务器端)可以弹出提示窗,正常使用时出错!

        End If

参考:

1. e.Exception --表示增加时发生的异常对象,如果在调用的目标对象上发生异常,查看InnerException对象以取得更多信息。

2. e.ExceptionHandled --表示是否将异常标记为已处理,如果设为true,异常不会传到后面的事件中去。

3. e.ReturnValue --表示你在object data source上设置的InsertMethod返回的值,可以通过此值检查是否成功。

补充:

4. e.ExceptionHandled --表示是否将异常标记为已处理,如果设为true,异常不会传到后面的Page.Error事件中去。否则如果定义了Page.Error事件,先执行Page.Error事件,如果Page.Error没有执行Server.ClearError()方法,异常再传入Application_Error事件中去.未定义Page.Error事件处理程序时,直接传入Application_Error事件中。
5. e.KeepInEditMode --
是否保持Edit模式中,通常如果出错,我们会显示一个错误信息,保持在Edit模式方便用户修改。