.net - que - sqldataadapter fill




¿Cómo averiguo si existe una columna en un VB.Net DataRow? (3)

DataRow es agradable en la forma en que tienen su tabla subyacente vinculada a ellos. Con la tabla subyacente puede verificar que una fila específica tenga una columna específica.

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

Estoy leyendo un archivo XML en un DataSet y necesito sacar los datos del DataSet. Como es un archivo de configuración editable por el usuario, los campos pueden o no estar allí. Para manejar bien los campos que faltan, me gustaría asegurarme de que cada columna en el DataRow exista y no sea DBNull.

Ya compruebo DBNull, pero no sé cómo asegurarme de que la columna existe sin tener que arrojar una excepción o utilizar una función que recorre todos los nombres de las columnas. ¿Cuál es el mejor método para hacer esto?


Otra forma de averiguar si existe una columna es verificar en Nothing el valor devuelto por el indexador de la colección Columns al pasarle el nombre de la columna:

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

Este enfoque puede ser preferible a uno que utiliza el método Contains("ColumnName") cuando el siguiente código posteriormente tendrá que obtener ese DataColumn para su uso posterior. Por ejemplo, es posible que desee saber qué tipo tiene un valor almacenado en la columna:

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

En este caso, este enfoque le ahorra una llamada a los Contains("ColumnName") al mismo tiempo, haciendo que su código sea un poco más limpio.


Puede usar DataSet.Tables(0).Columns.Contains(name) para verificar si DataTable contiene una columna con un nombre particular.





datarow