C # DataTable ItemArray torna '{}' - come posso verificare valore nullo?
Domanda
Ho un DataTable resultSet;
- Sto cercando di controllare i campi per nulla, ma ottenere un '{}' (vuoto-set?) Opporsi indietro. Ricerche che coinvolgono "{}" non stanno producendo alcun soluzioni adeguate.
Questo è il codice che non funziona come previsto quando il campo "fk_id" è nullo:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
//never reaches here
}
Nota: utilizzando un indice int al posto del Columns.IndexOf()
non è il problema
Se la cava anche il "{}" hanno un altro nome in C #?
Soluzione
Per controllare una colonna per DBNull a un DataSet, è possibile utilizzare la IsNull metodo:
if (resultSet.Rows[0].IsNull("fk_id"))
Il confronto con null
è probabilmente venendo a mancare a causa di DataSet non utilizzare null
per rappresentare un valore "banca dati NULL" - usano DBNull.Value . Se è necessario il codice per lavorare nel modo che avete presentato, provate questo:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value)
Altri suggerimenti
try
{
if (DT.Rows[0][0] != null)
{
//your code
}
}
catch
{
MessageBox.Show("AUTHANICATION FAILED.");
}
Si prega di utilizzare:
dataTable.Select("FieldName is NULL")
questo vi darà i DataRow con i valori nulli nella colonna FieldName.