문제

XML 파일을 DataSet으로 읽고 있는데 DataSet에서 데이터를 가져와야 합니다.사용자가 편집할 수 있는 구성 파일이므로 필드가 있을 수도 있고 없을 수도 있습니다.누락된 필드를 잘 처리하기 위해 DataRow의 각 열이 존재하고 DBNull이 아닌지 확인하고 싶습니다.

이미 DBNull을 확인했지만 예외를 발생시키거나 모든 열 이름을 반복하는 함수를 사용하지 않고 열이 존재하는지 확인하는 방법을 모르겠습니다.이를 수행하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

Datarow 's는 기본 테이블이 연결되어있는 방식으로 훌륭합니다. 기본 테이블을 사용하면 특정 행에 특정 열에 특정 열이 있는지 확인할 수 있습니다.

    If DataRow.Table.Columns.Contains("column") Then
        MsgBox("YAY")
    End If

다른 팁

당신이 사용할 수있는 DataSet.Tables(0).Columns.Contains(name) 있는지 확인합니다 DataTable 특정 이름의 열이 포함되어 있습니다.

열이 존재하는지 확인하는 또 다른 방법은 Nothing 값은에서 반환되었습니다 Columns 열 이름을 전달할 때 수집 인덱서 :

If dataRow.Table.Columns("ColumnName") IsNot Nothing Then
    MsgBox("YAY")
End If

이 접근법은 Contains("ColumnName") 다음 코드가 이후에 가져와야하는 방법 DataColumn 추가 사용을 위해. 예를 들어, 열에 저장된 값이 있는지 알고 싶을 수도 있습니다.

Dim column = DataRow.Table.Columns("ColumnName")
If column IsNot Nothing Then
    Dim type = column.DataType
End If

이 경우이 접근법은 귀하에게 전화를 저장합니다. Contains("ColumnName") 동시에 코드를 조금 더 깨끗하게 만듭니다.

try ...를 사용하여 코드 블록을 캡슐화할 수 있습니다.catch 문을 실행하고 코드를 실행할 때 열이 존재하지 않으면 예외가 발생합니다.그런 다음 어떤 특정 예외가 발생하는지 파악하고 원하는 경우 "열을 찾을 수 없음"을 반환하는 등 특정 예외를 다른 방식으로 처리하도록 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top