InvalidCastException dans une requête LINQ
Pour cette requête LINQ je suis de l'exception ci-dessous:
(from row in ds.Tables[0].AsEnumerable()
where row.Field<string>("Dept_line_code") == DeptCode &&
row.Field<string>("Skill_Name") == skill &&
row.Field<string>("Acct_Code") == account && row.Field<string>("Location") == dtNewTable.Rows[intRow]["Location"].ToString()
select row.Field<int>("Presently_Available") == null ? 0 : row.Field<int>("Presently_Available")
).FirstOrDefault();
Exception de l'information:
Type d'Exception: InvalidCastException
Message d'Exception: Ne peut pas lancer de DBNull.Valeur de type 'System.Int32'. Veuillez utiliser un type nullable.
Je ne sais pas type nullable et je ne reçois pas comment utiliser le type nullable à surmonter cette exception.
Bref: par défaut, les types primitifs (comme
Semble que vous utilisez DataSet, probablement rempli par DataAdapter. Ensuite, vous pouvez remplir pas un DataSet mais un DataTable, si vous êtes sûr que la requête qui contient une seule table.
Lorsque nous avons besoin d'utiliser des types nullables? quels scénarios? pourquoi nous devons utiliser la même? Besoin d'informations sur le but et les avantages ou les Inconvénients avec des types Nullables?
Google "types nullables C#" et lire à ce sujet. Vous avez besoin d'apprendre comment faire des recherches sur vos propres problèmes plutôt que de demander aux gens de vous donner des réponses.
int
, double
, float
, ...) ne peuvent pas être attribués des valeurs null. La solution à ce problème est d'utiliser un type nullable à la place (comme int?
), qui est vraiment juste un wrapper autour de la type primitif.Semble que vous utilisez DataSet, probablement rempli par DataAdapter. Ensuite, vous pouvez remplir pas un DataSet mais un DataTable, si vous êtes sûr que la requête qui contient une seule table.
Lorsque nous avons besoin d'utiliser des types nullables? quels scénarios? pourquoi nous devons utiliser la même? Besoin d'informations sur le but et les avantages ou les Inconvénients avec des types Nullables?
Google "types nullables C#" et lire à ce sujet. Vous avez besoin d'apprendre comment faire des recherches sur vos propres problèmes plutôt que de demander aux gens de vous donner des réponses.
OriginalL'auteur venkat | 2012-01-10
Vous devez vous connecter pour publier un commentaire.
vous avez à faire int accepte la valeur null => int?
et c'est un lien pour les Types Nullables
int?
résout son problème.Je viens de l'éditer 😉
Wow, une couple d'heures de recherche pour trouver j'ai juste besoin d'un point d'interrogation!
OriginalL'auteur Akrem
OriginalL'auteur abatishchev
changement
row.Field<int>
àrow.Field<int?>
OriginalL'auteur Srinivas Reddy Thatiparthy