在我的 Web 应用程序中,我定义了一个Regex
,Match
和str
. 因此Regex
将用于将其他字符串与str
和进行比较Match
以识别在textboxes
. 在我的代码中,我定义了 3 个字符串matches
以与str
. 还定义了与数据库的连接。以下代码显示了定义:
Dim r As Regex = New Regex(str2, RegexOptions.IgnoreCase)
Dim m1 As Match = r.Match(txt1.Text.ToString)
Dim m2 As Match = r.Match(txt2.Text.ToString)
Dim m3 As Match = r.Match(txt3.Text.ToString)
Dim myconn As New SqlConnection(ConnString)
我面临的问题是我有很多if else
陈述,我无法确定一种适当控制它们的方法,如下所示:
If (m1.Success) AND (m2.Success) AND (m3.Success) Then
Try
myconn.Open()
Dim cmd = New SqlCommand("Update Std SET Title = @param ", myconn)
cmd.Parameters.Add("@param", Data.SqlDbType.Bit).Value = bit_True
cmd.ExecuteNonQuery()
cmd.Dispose()
myconn.Close()
Catch ex As Exception
Response.Write(ex)
End Try
ElseIf (m2.Success) Then
Try
myconn.Open()
Dim cmd = New SqlCommand("Update Teacher SET In_name = @param ", myconn)
cmd.Parameters.Add("@param", Data.SqlDbType.Bit).Value = bit_True
cmd.ExecuteNonQuery()
cmd.Dispose()
myconn.Close()
Catch ex As Exception
Response.Write(ex)
End Try
ElseIf (m3.Success) Then
Try
myconn.Open()
Dim cmd = New SqlCommand("Update Std SET std_name = @param ", myconn)
cmd.Parameters.Add("@param", Data.SqlDbType.Bit).Value = bit_True
cmd.ExecuteNonQuery()
cmd.Dispose()
myconn.Close()
Catch ex As Exception
Response.Write(ex)
End Try
End If
我对代码的期望是:
检查第一个条件
m1.success
,如果true
然后执行第一个Try
块,否则如果False
忽略所有Try
块并移动到下一个条件(m2),则m2.success
如果true
然后执行第二个 块,则检查第二个条件Try
,否则如果False
忽略所有Try
块并移动到下一个条件(m3),则同样适用
m3.Success
所以这意味着第一个Try
块与第一个块相关,if statement
(m1.Success)
并且只有在条件 (m1) 为真时才应执行。m2 和 m3 也是如此。通过这种方式,我将对语句进行动态控制。所以
m1
= 执行第一个Try
块。
m2
= 执行第二个Try
块。
m3
= 执行第三个Try
块。
任何返回的条件都False
将与其Try
块一起被忽略。
关于如何动态控制这些条件的任何建议或想法?