Je trouve des difficultés à valider les éléments suivantsVérifier DBNull en C#
if(personDS.person[0].IdFk!= DBNull.Value)
c'est l'erreur de compilation - ne peut pas être appliquée aux opérandes de type « System.Guid et « System.DBNull »
Je trouve des difficultés à valider les éléments suivantsVérifier DBNull en C#
if(personDS.person[0].IdFk!= DBNull.Value)
c'est l'erreur de compilation - ne peut pas être appliquée aux opérandes de type « System.Guid et « System.DBNull »
Je pense que vous devriez vérifier:
vous pouvez également vérifier contre un vide Guid
if (personDS.person[0].IdFk == Guid.Empty)
essayer
if(!(personDS.person[0].IdFk is System.DBNull))
Si IdFk est nul, il lèvera une exception. Vérifiez la classe autogénérée DataSet pour la mise en œuvre. La propriété jette et exception. Peut-être que cela peut être changé par la propriété de la colonne, mais cela n'a pas fonctionné pour moi. –
Id est un Guid, qui est un type de valeur et sera donc jamais égale DBNull.Value. Avant que je puisse entièrement aider, j'ai besoin de connaître les types de personDS
(DataSet peut-être?) Et person
(DataTable peut-être). En supposant donc, alors peut-être:
if (!personDS.person[0].IsNull("IdFK"))
Si person
n'est pas un DataTable mais une classe, puis vérifier soit IdFk == Guid.Empty
, si IdFk
est un Guid ou IdFk == null
si IdFk
est Guid?
.
Est-ce que IdFk est déclaré comme étant nul? Es:
public Guid? Idfk
Si oui, vous pouvez:
if(personDS.person[0].IdFk.HasValue)
Autant que je puisse dire c'est un non-sens complet, pour les raisons suivantes: 1) 'public' commence par un plus petit' p' 2) le suffixe '?' Doit être ajouté au type, pas l'identifiant 3) si 'personDS.person [0] .IdFK' est en effet nul le code lancera une exception' InvalidOperationException', sinon la condition sera toujours fausse, puisque 'DBNull.Value' ne sera rien d'autre que lui-même et un' Guid' ne pourra jamais être de type DBNull (et il ne compilera pas, puisque vous ne pouvez pas comparer 'Guid' et' DBNull' sans avoir fusionné l'un et l'autre, ce qui fera une comparaison de référence) – Nuffin
True, je sans VS maintenant et codage en vb cette période. Fait un peu de confusion :) Edité la réponse de toute façon, merci. –
exception est levée lorsque vous essayez d'accéder à IdFk parce que ce n'est pas annulable. –
Vous pourriez trouver la réponse ici: stackoverflow.com/questions/211436/nullable-guid Question GUID Nullable. –