C # Datatable ItemArray gibt ‚{}‘ - wie kann ich für Null-Wert zu testen?
Frage
Ich habe einen DataTable resultSet;
- Ich versuche, Felder für null zu überprüfen, aber ein ‚{}‘ (Leer-Set?) Bekommen Objekt zurück. Suchen Beteiligung „{}“ sind keine geeigneten Lösungen ergeben.
Dies ist der Code, der nicht wie erwartet funktioniert, wenn das „fk_id“ Feld ist null:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
//never reaches here
}
Hinweis: ein int Index anstelle der Columns.IndexOf()
Verwendung ist nicht das Problem
Auch funktioniert die "{}" einen anderen Namen in C #?
Lösung
eine Spalte für DBNull in einem Datensatz zu überprüfen, können Sie die IsNull Methode:
if (resultSet.Rows[0].IsNull("fk_id"))
Ihr Vergleich gegen null
versagt wahrscheinlich, weil Datasets verwenden null
keine „Datenbank NULL“ Wert darzustellen - sie verwenden DBNull.Value . Wenn Sie Ihren Code müssen die Art und Weise arbeiten Sie es vorgestellt haben, versuchen Sie dies:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value)
Andere Tipps
try
{
if (DT.Rows[0][0] != null)
{
//your code
}
}
catch
{
MessageBox.Show("AUTHANICATION FAILED.");
}
Bitte verwenden:
dataTable.Select("FieldName is NULL")
Dies wird Ihnen die DataRows mit Nullwerten in Feldname Spalte.