Vb.net 显示最终用户理解的外键约束警告
我有一个使用外键约束的数据库的应用程序 例如,我们有一个清单表,它有一个外键约束,它引用一个名为case_names的表。如果用户试图删除具有引用其ID的任何库存项目的案例名称,则该操作将受到限制 我如何向用户显示他们能够理解的消息?”您无法删除此案例,因为它仍然包含库存项目。' 我的想法是一种尝试捕获(捕获不同的错误类型?),但我并不真的想将其用于预期的事情Vb.net 显示最终用户理解的外键约束警告,vb.net,foreign-keys,mysql.data,Vb.net,Foreign Keys,Mysql.data,我有一个使用外键约束的数据库的应用程序 例如,我们有一个清单表,它有一个外键约束,它引用一个名为case_names的表。如果用户试图删除具有引用其ID的任何库存项目的案例名称,则该操作将受到限制 我如何向用户显示他们能够理解的消息?”您无法删除此案例,因为它仍然包含库存项目。' 我的想法是一种尝试捕获(捕获不同的错误类型?),但我并不真的想将其用于预期的事情 该应用程序在VB.Net中使用MySQL.data我不会使用异常来处理用户错误或正常的程序流。 只需检查用户是否可以删除记录(可能使用存
该应用程序在VB.Net中使用MySQL.data我不会使用异常来处理用户错误或正常的程序流。 只需检查用户是否可以删除记录(可能使用存储过程),如果不能,则向她显示一条警告消息 我认为例外是指你无法预见的错误 编辑以澄清: 存储过程(或程序中的代码)可以对所有涉及的表执行检查或,甚至可以
计数()
删除请求会影响多少记录。通过计算,您还可以告诉用户与案例相关的库存项目的数量,例如:
“您不能删除此案例,因为它仍然包含32个库存
项目。”
编辑以澄清更多信息:
当然,这并不是说不应该在DB中正确设置引用完整性。如果您忘记了一些检查,您仍然拥有适用于您的数据库(用户会打电话给您,了解程序到底在说什么:))。您是在尝试删除后捕获异常,还是在尝试删除前检查相关项目?在尝试删除后捕获异常。我同意-这就是为什么我不确定如何执行我想要的操作。我只知道如果他们看到一个以外键约束开始的错误-我正在接到一个电话。我更希望它能提供信息,以便他们了解收到错误的原因。因此,您的意思是基本上有一个存储过程,检查有多少库存项目具有案例id 1-如果大于零,则向用户显示数字并提醒他们无法删除案例名称?事实上,再次
COUNT()
要知道你是否可以安全地删除主表,如果不告诉她一句漂亮的句子,而不是“外键被侵犯”,这可能也会吓到我:)是的,我一直都这样做。存储过程可以对所有涉及的表进行检查。取决于您是否只需检查或也计数
,以让用户更清楚。