【发布时间】:2010-11-28 04:00:07
【问题描述】:
虽然验证可以防止大多数SQL 错误,但有些情况根本无法防止。我可以想到其中的两个:某些列的唯一性和错误的外键:验证不能有效,因为在验证之后和插入数据库之前,其他方可以创建或删除一个对象。因此,(至少)有两个 SQL 错误会导致用户输入无效的消息。
SQLException 有一个错误类型的 Number 属性,但我不知道如何在不尝试解析实际错误消息文本的情况下找出哪个列重复或哪个外键错误,这恰好发生在本地化。
除了解析错误信息(这意味着至少要严格为 SQL Server 选择一种语言并始终使用它)之外,有没有其他方法可以识别违规列?
编辑:
我应该提到我来自 RubyOnRails,方法是:假设数据库不存在:没有约束,没有 db 强制外键等。当我接近 ASP.NET MVC 时,我会喜欢摆脱 rails 的偏见,接受 db 确实存在的事实。
【问题讨论】:
标签: asp.net sql sql-server validation exception