2014-05-13 3 views
0

이 코드를 강화할 수 있습니까?TryParse를 사용하여 DataTable 행 개수를 확인 하시겠습니까?

어쨌든 TryParse을 수행해야 할 경우 DataTable.Rows.Count 확인이 필요합니까?

If dtDataTable.Rows.Count > 0 Then 
    Try 
     Boolean.TryParse(dtDataTable.Rows.Item(0).Item("IsBoolValue").ToString(), m_bBoolean) 
    Catch ex As Exception 
     ' we got a NULL 
     m_bBoolean = False 
    End Try 
Else 
    m_bBoolean = False 
End If 

감사합니다.

답변

1

예에 행,

dtDataTable.Rows.Item(0).Item("IsBoolValue").ToString() 

은 TryParse에 의해 분석되고 전에 NullReferenceException이를 조성하고 그런 예외 핸들러를 사용하여 코드를 운전하지 않으려는 표현이없는 경우 때문이다. 테스트 전에 간단한 IF를 사용하는 데 드는 비용은 예외를 처리하는 데 드는 비용과 비교해 볼 때 매우 작습니다.

또한, 나는 가능한 예외를

m_bBoolean = False 
If dtDataTable.Rows.Count > 0 Then 
    if(dtDataTable.Rows.Item(0).Item("IsBoolValue") <> DBNull.Value) Then 
     Boolean.TryParse(dtDataTable.Rows.Item(0).Item("IsBoolValue").ToString(), m_bBoolean) 
    End if 
End If 
+0

감사를 피하기 위해 DBNull.Value에서 테스트를 도입하는 것이 더이라고 생각! 매우 도움이됩니다. 내. version 버전의 평가 식을 If Not IsDBNull()으로 변경했습니다. – JoJo