数据验证和验证之间有什么区别?

时间:2011-04-14 07:06:02

标签: c# validation verification

我对过去雇主的回忆是,他们将两者区分如下:

  • 验证是在非常基本的意义上检查数据是否合适的过程;例如,日期字段中的数据可以转换为日期,或者数字字段中的字符可以转换为适当类型的数字;
  • 验证是根据您在界面上强加的其他“业务”规则检查输入数据的过程 - 例如,“出生日期”字段表示申请人在特定年龄范围内。

这些记忆与主题Wikipedia article无关,也不与BBC BiteSize Revision article有关。

那么共识是什么:例如,当我检查Xml输入时,人们是否关心调用哪些方法和过程?

我在做什么:

  1. 检查日期字段是否包含可转换为C#DateTime;
  2. 的字符
  3. 检查DateTime是否在适当的日期范围内存储在SQL Server中;
  4. 检查出生日期是否表示客户年满18岁但未满65岁?

3 个答案:

答案 0 :(得分:2)

在我的词汇表中,验证正在检查数据的格式是否正确,IE是否实际上正在处理格式正确的日期字符串。 验证正在检查您获得的日期是否实际上是您期望的日期。

答案 1 :(得分:1)

好的,所以我会把这作为一个公开的邀请来沉思......

我认为差异非常类似于编译时与运行时错误。就像编译器能够告诉两个变量ab类型为double,因此表达式a/b有效,它只在运行时期间{如果DivideByZeroException原来是b,则可能会引发{1}}。

因此,要完成类比,可以验证字符串看起来像信用卡号(“编译时间”),但只有在尝试对信用卡收费时才能验证它是否与有效卡相对应('运行时'),金额

咄。所以我想我理解它就像你老公司那样。

答案 2 :(得分:0)

就编程而言,它与你所称的(验证或验证)无关,但你放置逻辑的地方很重要。通常,您提到的所有三个规则都是验证,前两个点对应于UI验证,最后一个指向业务规则验证。我们通常使用控制器中的数据注释验证UI字段,并在业务层内执行业务规则验证。但从软件的角度来看,底线是;除非数据是好的(你称之为有效或经过验证),否则不要进行操作(保存,编辑)。