检查数据是否为空

时间:2011-02-10 14:23:33

标签: c# asp.net

最佳做法是检查来自数据库的值是否为空,即使列中存在禁止空值的约束。

提前致谢

3 个答案:

答案 0 :(得分:4)

您所谈论的是defensive programming。我不认为在你不信任你的输入时练习它是好的。您可能认为现在可以信任您的数据库,但是如果将来您决定该列应该在某处具有NULL值,该怎么办?然后你需要在你认为不是的任何地方改变代码吗?

如果你认为你不会改变它(比如它是主键或其他东西),那么我认为你不需要。如果您有一天决定更改架构,这将是更具前瞻性的证据。如果该列永远不会出现NULL有意义的情况,那么您可能不需要检查。如果你得到一个NULL,就像评论者说的那样,你有一个更大的问题,那就是你的数据库可能已经被软管了。

答案 1 :(得分:0)

我要说,继续为您的业务逻辑添加Null检查。在单元测试期间它也特别有用。也许不是现在,而是将来。

答案 2 :(得分:0)

这取决于很多因素。

在我的许多项目中,我努力实现单元测试,这会将处理数据的代码与检索数据的代码分离(即通过与数据库交谈。)

这样我也可以通过从其他来源提供数据来重用处理数据的代码。在这种情况下,我绝对会保护逻辑层的输入值。

此外,应用程序随着时间的推移而发展,所以即使你现在不可能获得空值,在某些时候它可能会被实现,然后很多旧的代码会突然得到它没有被写入的东西处理。我个人希望他们快速失败,而不是在某些情况下默默地过程。