Wie finde ich heraus, ob eine Spalte in einer VB.Net DataRow vorhanden
Frage
Ich bin eine XML-Datei in ein DataSet zu lesen und muß die Daten aus dem DataSet zu erhalten. Da es sich um eine benutzerdefinierbare Konfigurationsdatei ist können die Felder oder nicht da sein. So behandeln Felder fehlen gut würde Ich mag jede Spalte in der DataRow, um sicherzustellen, existiert und nicht DBNull.
ich schon für DBNull überprüfen, aber ich weiß nicht, wie Sie sicher, ohne dass es die Spalte existiert, um eine Ausnahme auslösen oder mit einer Funktion, die über alle Spaltennamen Schleifen. Was ist die beste Methode, dies zu tun?
Lösung
DataRow die sind schön in der Art und Weise, dass sie ihre zugrunde liegende Tabelle mit ihnen verbunden haben. Mit der zugrunde liegenden Tabelle können Sie überprüfen, ob eine bestimmte Zeile in eine bestimmte Spalte hat.
If DataRow.Table.Columns.Contains("column") Then
MsgBox("YAY")
End If
Andere Tipps
Sie können mit DataSet.Tables(0).Columns.Contains(name)
prüfen, ob die DataTable
eine Spalte mit einem bestimmten Namen enthalten.
Ein weiterer Weg, um herauszufinden, ob eine Spalte ist vorhanden für Nothing
zu überprüfen, den Wert aus dem Columns
Sammlung Indexer zurückgegeben, wenn die Spaltennamen, um es vorbei:
If dataRow.Table.Columns("ColumnName") IsNot Nothing Then
MsgBox("YAY")
End If
Dieser Ansatz könnte über eine bevorzugt sein, dass die Contains("ColumnName")
Methode verwendet, wenn der folgende Code wird anschließend, dass DataColumn
zur weiteren Verwendung erhalten müssen. Zum Beispiel möchten Sie vielleicht wissen, welche Art, die einen Wert in der Spalte gespeichert hat:
Dim column = DataRow.Table.Columns("ColumnName")
If column IsNot Nothing Then
Dim type = column.DataType
End If
In diesem Fall wird dieser Ansatz erspart Ihnen einen Aufruf an den Contains("ColumnName")
zugleich Ihren Code ein bisschen sauberer zu machen.
Sie können Ihren Code-Block mit einem try ... catch-Anweisung, kapseln und wenn Sie Ihren Code ausführen, wenn die Spalte nicht existiert es wird eine Ausnahme werfen. Anschließend können Sie herausfinden, was spezifische Ausnahme wirft es und haben es diese spezifische Ausnahme in einer anderen Art und Weise handhaben, wenn Sie es wünschen, wie Rückkehr „Spalte nicht gefunden“.