验证表单输入并仅在通过时运行函数

时间:2010-01-19 17:56:46

标签: vb.net validation

在我的.NET项目中,我必须在4/5字段上运行大量验证。此验证检查某些字段是否有错误,例如:name字段不允许包含数字或符号。如果所有这些检查都通过,我需要执行SQL查询以从数据库中提取一些数据。

我可以使用很多嵌套的IF,并在它们全部通过后在最后运行该函数,但这将转换为大约12个嵌套的IF,这似乎是一个非常笨重的方法。我还考虑过在每次检查后设置一个布尔值,如果值为1则不运行该函数,否则执行。但当然,这会被其他通过的检查所覆盖。

任何人都可以提供一些见解吗?感谢。

2 个答案:

答案 0 :(得分:1)

这可能需要提前退出,即在验证失败后立即退出:

If Not IsValidNameField(name) Then Return
If Not IsValidDateFiled(date) Then Return
…

如果您发现自己在很多地方都这样做,请考虑是否可能有更早的点来验证字段,即可能通过在适当的属性设置器中提供验证,然后始终通过属性操作字段值直接。

这个可能起初工作量更大,但从长远来看可以节省大量工作。根据经验,防止字段包含无效值。这样更清晰,更易于维护和调试。

答案 1 :(得分:0)

你对你的布尔变量的想法是正确的;将其默认为True,然后单独运行每个验证检查,如果检查失败,则将每个验证检查设置为False。然后,如果它仍然等于True,则可以继续使用SQL查询。