Pregunta

Tengo un DataTable resultSet; - Estoy tratando de comprobar campos para nula, pero conseguir una '{}' (vacío establecido?) Objeto de nuevo. Búsquedas realizadas con "{}" no están dando ningún soluciones adecuadas.

Este es el código que no está funcionando como se esperaba cuando el campo "fk_id" es nulo:

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
   //never reaches here
}

Nota: el uso de un índice int en lugar de la Columns.IndexOf() no es el tema

.

También lo hace el "{}" tiene algún otro nombre en C #?

¿Fue útil?

Solución

Para comprobar una columna para DBNull en un conjunto de datos, se puede utilizar el IsNull método:

if (resultSet.Rows[0].IsNull("fk_id"))

Su comparación frente null está fallando, probablemente debido a conjuntos de datos no utilizan null que representan una "base de datos NULL" valor - que utilizan DBNull.Value . Si necesita que su código para que funcione de la manera que se ha presentado, intente lo siguiente:

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value)

Otros consejos

try
{
    if (DT.Rows[0][0] != null)
    {      
      //your code
    }    
}    
catch    
{    
    MessageBox.Show("AUTHANICATION FAILED.");    
}

Por favor, use:

dataTable.Select("FieldName is NULL")

esto le dará los DataRows con valores nulos en la columna NombreCampo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top