C # DataTable ItemArray vuelve '{}' - ¿Cómo puedo probar de valor nulo?
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 #?
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.