【发布时间】:2014-03-18 06:19:33
【问题描述】:
我想提出这个问题....如果循环中只有 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 个错误
【问题讨论】:
-
我不清楚你的问题,但是,如果你的
site_id是Boolean会有两个值。为什么不使用If而不是Select Case? -
我也使用 if 语句,但我没有得到它,当我使用 IF 语句时也会发生同样的事情,它只是插入到数据库中
-
如果所有行中的
side_id为真,您的意思是要插入数据库吗? -
我的意思是,如果 site_id 返回的只有 1 个 false,它将不会插入到数据库中,但如果所有 site_id 都为 true,那么它将插入到数据库中
-
@Denmark,看看我的回答。
标签: vb.net for-loop switch-statement sql select-case