J'ai une table avec une colonne DateTime La colonne peut avoir des valeurs NULL
Maintenant, je me connecte à la base de données à l'aide d'une connexion ODBC et récupère la valeur dans un DataTable au format .net/c #.
Je suis capable de vérifier pour NULL en allant
if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
//Whatever I want to do
}
String.IsNullOrEmpty est-il le bon moyen de vérifier les valeurs NULL?.
Utilisez DBNull.Value.Equals sur l’objet sans le convertir en chaîne.
Voici un exemple:
if (! DBNull.Value.Equals(row[fieldName]))
{
//not null
}
else
{
//null
}
Utilisez simplement DataRow.IsNull. Il comporte des substitutions acceptant un index de colonne , un nom de colonne ou un objet DataColumn en tant que paramètres.
Exemple utilisant l'index de colonne:
if (table.rows[0].IsNull(0))
{
//Whatever I want to do
}
Et bien que la fonction s'appelle IsNull
, elle se compare vraiment à DbNull
(ce qui est exactement ce dont vous avez besoin).
Et si je veux vérifier DbNull mais que je n'ai pas de DataRow? Utilisez Convert.IsDBNull .
System.Convert.IsDbNull][1](table.rows[0][0]);
IIRC, le (table.rows[0][0] == null)
ne fonctionnera pas, car DbNull.Value != null;
row.IsNull ("colonne")
Si nous utilisons EF et lisons l'élément de base de données dans la boucle while,
using( var idr = connection, SP.......)
{
while(idr.read())
{
if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
//do something
}
}