Ich habe eine Tabelle mit einer DateTime-Spalte Die Spalte kann NULL-Werte haben
Jetzt verbinde ich mich über eine ODBC - Verbindung mit der Datenbank und hole den Wert in eine DataTable in .net/c #.
Ich kann es auf NULL überprüfen, indem ich gehe
if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
//Whatever I want to do
}
Ist String.IsNullOrEmpty die richtige Methode zum Überprüfen auf Nullwerte.
Verwenden Sie DBNull.Value.Equals für das Objekt, ohne es in einen String zu konvertieren.
Hier ist ein Beispiel:
if (! DBNull.Value.Equals(row[fieldName]))
{
//not null
}
else
{
//null
}
Verwenden Sie einfach DataRow.IsNull. Es hat Überschreibungen, die einen Spaltenindex, einen Spaltennamen oder ein DataColumn-Objekt als Parameter akzeptieren.
Beispiel mit dem Spaltenindex:
if (table.rows[0].IsNull(0))
{
//Whatever I want to do
}
Und obwohl die Funktion IsNull
heißt, kann sie wirklich mit DbNull
verglichen werden (was genau das ist, was Sie brauchen).
Was ist, wenn ich nach DbNull suchen möchte, aber keine DataRow habe? Verwenden Sie Convert.IsDBNull .
System.Convert.IsDbNull][1](table.rows[0][0]);
IIRC, der (table.rows[0][0] == null)
funktioniert nicht, da DbNull.Value != null;
row.IsNull ("column")
Wenn wir EF verwenden und das Datenbankelement in while-Schleife lesen, dann
using( var idr = connection, SP.......)
{
while(idr.read())
{
if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
//do something
}
}