GridView内置删除功能删除数据时如何处理外键异常?

rongmu 2012-06-05 02:21:31
两个数据表:
retailer存放销售商信息,
contract存放销售合同信息。
后者中的retailernum字段要引用到销售商的编号

当我用GridView显示销售商列表,使用内置的删除功能删除某一个被销售合同引用到的销售商信息时
系统就会出现错误,提示
SqlException (0x80131904): DELETE 语句与 REFERENCE 约束"FK_contract_retailer"冲突。

我不打算使用级联删除,有没有办法捕捉这个异常并在页面上向用户提示不可删除该记录呢?

求教!
...全文
189 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝶恋花雨 2012-06-05
  • 打赏
  • 举报
回复
内置的是 <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
这种。其实查看html代码是button
参考下面的
http://blog.csdn.net/21aspnet/article/details/1540301
或者
<ItemTemplate>里面放在一个linkbutton来进行操作。
<asp:LinkButton ID="Delete_lbt" runat="server" CommandName="Delete" Font-Size="11px" OnClientClick="javascript:return confirm('确定要删除吗?');"><img alt="删除" style="border:0;height:13px; width:13px;" />删除</asp:LinkButton>
rongmu 2012-06-05
  • 打赏
  • 举报
回复
谢谢各位的回答

有想过用try catch,但是GridView内置的删除功能就只是在控件中放CommandName="delete"的按钮
而不用在后台编程,所以我不知道该怎么处理
lw_881020 2012-06-05
  • 打赏
  • 举报
回复


try{
//删除执行的代码
}cathc{
//Response.Write("<script>alert('不允许删除');</script>");
}
细嗅蔷薇 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

作删除标记,不作物理删除。可以避免这类问题。
然后把物理删除的工作丢给数据库人员。
[/Quote]
或者try 或者 事务
  • 打赏
  • 举报
回复
试过try catch吗?
bwangel 2012-06-05
  • 打赏
  • 举报
回复
作删除标记,不作物理删除。可以避免这类问题。
然后把物理删除的工作丢给数据库人员。

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧