在vb.net中的select case中循环相同的case

在vb.net中的select case中循环相同的case,vb.net,for-loop,switch-statement,sql,select-case,Vb.net,For Loop,Switch Statement,Sql,Select Case,我想提出这个问题。。。。若循环中只有1个false,那个么它将不会插入到数据库中,反之亦然。若全部为true,那个么它将插入到数据库中 这是我的密码 Public Function Check_Foreign_Key(ByVal select_column_name As String, ByVal table_name As String, ByVal where_column_name As String, ByVal where_value As String, ByRef Foreign

我想提出这个问题。。。。若循环中只有1个false,那个么它将不会插入到数据库中,反之亦然。若全部为true,那个么它将插入到数据库中

这是我的密码

Public Function Check_Foreign_Key(ByVal select_column_name As String, ByVal table_name As String, ByVal where_column_name As String, ByVal where_value As String, ByRef Foreign_Key As String) As Boolean
    Dim dt_service_provider_id As DataTable = ExecuteSQLQuery("select " & select_column_name & " from " & table_name & " where " & where_column_name & " = '" & where_value & "'")
    If dt_service_provider_id.Rows.Count = 0 Then
        Return False
    Else
        Foreign_Key = dt_service_provider_id.Rows(0).Item(0).ToString()
        Return True
    End If
End Function 


    For Each dr As DataRow In dt.Rows
     Dim dt_rows as Integer = 0
     Dim site_id As Boolean = Check_Foreign_Key("site_id", "sites", "site_code", dr(2).ToString, dt_fk)
        If dr(0).ToString.Length > 50 And dr(0).ToString = "" And dr(0).ToString Is Nothing Then
            get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, "Character is greater than 50")
            'in here i want to continue checking go to next, i think i got error in cheking if dr(0) is empty
         Else
             If dr(1).ToString.Length > 50  And dr(1).ToString = "" And dr(1).ToString Is Nothing Then
               get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, "Character is greater than 50")
               'in here i want to continue again to next
              Else
               Select Case site_id
                Case False
                  get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, dr(2).ToString)
                  Return
                End Select
              End If
            End If
          dt_row += 1
     Next
这是我只知道的代码,但不幸的是,我无法得到我的逻辑,它总是插入,而它有1个false

Private SaveToDB()
    For Each dr As DataRow In dt.Rows
     Dim site_id As Boolean = Check_Foreign_Key("site_id", "sites", "site_code", dr(2).ToString, dt_fk)
        Select Case site_id
           Case False
              get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, dr(2).ToString)
              Return

         End Select
     Next

    'if you got here means no error
    'NOTE: You should loop again and save the rows
     For Each dr As DataRow In dt.Rows
        'Your code to save into the database here
     Next
End Sub

希望这能解决问题

Dim blnAllTrue As Boolean = True
For Each dr As DataRow In dt.Rows
    Dim site_id As Boolean = Check_Foreign_Key("site_id", "sites", "site_code", dr(2).ToString, dt_fk)
    blnAllTrue = blnAllTrue And site_id
    If site_id = False Then
          get_error(dt.TableName, dt.Columns(2).ToString, dt_row.ToString, dr(2).ToString)
    End If
Next
If blnAllTrue = True Then
    'insert into your database
End If

我不清楚你的问题,但是,如果你的
站点id
布尔值
将有两个值。为什么不使用
If
而不是
Select Case
?我也使用If语句,但我没有得到它,当我使用IF语句时也会发生同样的情况,它只是插入到数据库中。你的意思是如果所有行的
side\u id
都为true,你想插入到数据库中吗?我的意思是,如果只有1个false,那么site\u id返回它将不会插入到数据库中,但如果所有site\u id都为true,那么它将插入到数据库中database@Denmark,请看我的答案。它仍将是其他情况,这是我的问题xD我需要,如果有1个false,它将继续,直到循环结束,但它不会插入到数据库中,但如果都为true,我如何在dr中获取数据?我的意思是,如果它转到下一个,那么我就不能再给“医生”打电话了,我能再问一次吗?如果我添加了另一条语句,您能再次查看我的代码吗?我看不出有什么更重要的声明了。你可以决定何时终止它。