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 #?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top