Moyen sûr d'obtenir des valeurs à partir d'un IDataReader
(LocalVariable)ABC.chaîne de caractères(Nom)= (Idatareader)datareader.GetString(0);
cette valeur de nom est à venir à partir de la base de données..
ce qui se passe ici est de savoir si ce nom de la valeur est null lors de la lecture c'est jeter une exception?
Je suis manuellement en faisant quelques si la condition ici. Je ne veux pas écrire un manuel condition à vérifier toutes mes variables..
Je suis en train de faire quelque chose comme cela maintenant..
string abc = (Idatareader)datareader.GetValue(0);
if(abc = null)
//assiging null
else
assiging abc value
est là quelque chose comme peut-on écrire une extension de la méthode pour cela?
grâce
source d'informationauteur kumar
Vous devez vous connecter pour publier un commentaire.
Voici un couple de méthodes d'extension qui va bien envelopper l'ensemble de vos préoccupations autour de la récupération fortement typé valeurs à partir d'un lecteur de données. Si la valeur est DbNull la valeur par défaut du type seront retournés. Dans le cas de
string
qui est une classe, unnull
sera retourné. Si le champ a étéint
puis0
serait renvoyé. En outre, si vous vous attendez à unint?
dire à partir d'un nullable champ int,null
serait renvoyé.Utilisation spécifique de Kumar cas:
Générales D'Utilisation
ou
ou
Extension
de http://skysanders.net/subtext/archive/2010/03/02/generic-nullsafe-idatarecord-field-getter.aspx
Similaire à @sky-sanders réponse, mais moins stricte avec les conversions:
Ma solution est que:
Lorsque,
Status = GetValue<string>(currentDataRow["status"])
Combinant les meilleures solutions et les suggestions, voici une C# 6 flèche expression version avec support pour
GetValue<T>
etGetValueOrDefault<T>
avec, en option, la valeur par défaut des paramètres.J'aimerais utiliser quelque chose comme ceci: