asp.net - 如何将存储在数据库中的规则以 vb.net 代码的形式转换?

标签 asp.net database vb.net

我们有一个要求,我们将规则存储在数据库表中,并且我们需要根据这些规则在运行时验证某些属性。

下表描述了类似的结构,我们将从中提取属性名称及其各自的规则,以根据 Rule_ID 进行评估。

示例:如果我想验证属性 FirstName,我需要检查 FirstName 属性不应为空并且必须包含一些值。如果此属性没有任何数据,则需要针对此属性抛出错误。

RULE_ID ATTRIBUTE_NAME      ATTRIBUTE_RULE
ABC123  FirstName              <> NULL
XYZ345  LastName               <> NULL
GHI654  Age                    <>NULL
POC123  DateOfBirth            < Sysdate
QWE675  BloodGroup             = A+ve
JKL987  City                   <> London
IUK134  Occupation             = NULL

由于存储在数据库中的规则将以Varchar即String形式存在,我们如何将这些以字符串形式存在的规则转换并使用vb.net在代码中验证属性?

请帮我解决这个问题。

最佳答案

我有类似的东西,但你需要根据自己的需要进行调整。

基本上我创建了一系列返回 bool 结果的函数

例如一个测试非空白的函数...

Protected Function CheckNotBlank(value As String) as Boolean
    If value <> "" then
        Return True
    Else
        Return False
    End If
End Function

要测试的函数是否小于数值...

Protected Function CheckIsLessThan(value As Integer, compareToValue As Integer) As Boolean
    If value < compareToValue Then
        Return True
    Else
        Return False
    End If
End Function

然后你可以进行一系列检查....

Dim ValidFlag as Integer = 0
Dim ErrorStack as New StringBuilder

If CheckNotBlank(MyValueToCheck) = False Then
    ValidFlag += 1
    ErrorStack.Append("MyValueToCheck is Blank ").Append(vbCrLf)
End If
If CheckIsLessThan(CheckIntegerValue, CompareToIntegerValue) = False Then
    ValidFlag += 1
    ErrorStack.Append("CheckIntegerValue is greater than CompareToIntegerValue ").Append(vbCRLF)
End If
If CheckNotBlank(AnotherValueToCheck) = False Then
    ValidFlag += 1
    ErrorStack.Append("AnotherValueToCheck is Blank ").Append(vbCrLf)
End If
......
If ValidFlag > 0 Then
  'We have errors
End If

您需要创建和调整您的函数以适应套件。希望对您有所帮助!

关于asp.net - 如何将存储在数据库中的规则以 vb.net 代码的形式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483592/

相关文章:

c# - 存在同名数据库,或无法打开指定文件,或位于 UNC 共享上

c# - 安全存储用于生成对称加密 key 的字符串

mysql - 仅使用一个条件检索两个数据 ID

c# - 在 C# 中开发,但在 VB.NET 中交付

python - 创建包含多个 HTTP 请求的 mime/multipart 请求

asp.net - HTTP 模块拦截请求并中断自定义错误配置

MySQL 查询优化

database - ORA-00936 : missing expression. 向 oracle apex 中的子类型添加约束

c# - 在 c# asp.net 中登录后禁用 Web 浏览器后退按钮

php - ORDER按钮(mysqli/PHP),不同的按钮相同的div