Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 显示最终用户理解的外键约束警告_Vb.net_Foreign Keys_Mysql.data - Fatal编程技术网

Vb.net 显示最终用户理解的外键约束警告

Vb.net 显示最终用户理解的外键约束警告,vb.net,foreign-keys,mysql.data,Vb.net,Foreign Keys,Mysql.data,我有一个使用外键约束的数据库的应用程序 例如,我们有一个清单表,它有一个外键约束,它引用一个名为case_names的表。如果用户试图删除具有引用其ID的任何库存项目的案例名称,则该操作将受到限制 我如何向用户显示他们能够理解的消息?”您无法删除此案例,因为它仍然包含库存项目。' 我的想法是一种尝试捕获(捕获不同的错误类型?),但我并不真的想将其用于预期的事情 该应用程序在VB.Net中使用MySQL.data我不会使用异常来处理用户错误或正常的程序流。 只需检查用户是否可以删除记录(可能使用存

我有一个使用外键约束的数据库的应用程序

例如,我们有一个清单表,它有一个外键约束,它引用一个名为case_names的表。如果用户试图删除具有引用其ID的任何库存项目的案例名称,则该操作将受到限制

我如何向用户显示他们能够理解的消息?”您无法删除此案例,因为它仍然包含库存项目。'

我的想法是一种尝试捕获(捕获不同的错误类型?),但我并不真的想将其用于预期的事情


该应用程序在VB.Net中使用MySQL.data

我不会使用异常来处理用户错误或正常的程序流。 只需检查用户是否可以删除记录(可能使用存储过程),如果不能,则向她显示一条警告消息

我认为例外是指你无法预见的错误

编辑以澄清:

存储过程(或程序中的代码)可以对所有涉及的表执行检查,甚至可以
计数()
删除请求会影响多少记录。通过计算,您还可以告诉用户与案例相关的库存项目的数量,例如:

“您不能删除此案例,因为它仍然包含32个库存 项目。”

编辑以澄清更多信息:


当然,这并不是说不应该在DB中正确设置引用完整性。如果您忘记了一些检查,您仍然拥有适用于您的数据库(用户会打电话给您,了解程序到底在说什么:))。

您是在尝试删除后捕获异常,还是在尝试删除前检查相关项目?在尝试删除后捕获异常。我同意-这就是为什么我不确定如何执行我想要的操作。我只知道如果他们看到一个以外键约束开始的错误-我正在接到一个电话。我更希望它能提供信息,以便他们了解收到错误的原因。因此,您的意思是基本上有一个存储过程,检查有多少库存项目具有案例id 1-如果大于零,则向用户显示数字并提醒他们无法删除案例名称?事实上,再次
COUNT()
要知道你是否可以安全地删除主表,如果不告诉她一句漂亮的句子,而不是“外键被侵犯”,这可能也会吓到我:)是的,我一直都这样做。存储过程可以对所有涉及的表进行检查。取决于您是否只需检查或也
计数
,以让用户更清楚。