gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:40:28 25 4
gpt4 key购买 nike

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

下表描述了类似的结构,我们将从中提取属性名称及其各自的规则,以根据 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com