在我的 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块一起被忽略。
关于如何动态控制这些条件的任何建议或想法?