Per questa query LINQ sto diventando l'eccezione di seguito:InvalidCastException in una query LINQ
(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();
informazioni Eccezione:
Tipo di eccezione: InvalidCastException
messaggioeccezione: non può lanciare DBNull .Valore per digitare "System.Int32". Si prega di utilizzare un tipo nullable.
Non conosco il tipo nullable e non riesco a capire come utilizzare il tipo nullable per superare questa eccezione.
Brevemente: per default, i tipi primitivi (come 'int',' double', 'galleggiante ', ...) non può essere assegnato valori nulli. La soluzione a questo problema è di usare un tipo nullable invece (come 'int?'), Che è in realtà solo un wrapper attorno al tipo primitivo. – ean5533
Sembra che si usi DataSet, probabilmente compilato da DataAdapter. Quindi non è possibile compilare un DataSet [ma un DataTable] (http://msdn.microsoft.com/en-us/library/905keexk.aspx), se si è certi che la query risultante contenga solo la singola tabella. – abatishchev
Quando è necessario utilizzare i tipi nullable? quali scenari? perché dobbiamo usare lo stesso? Hai bisogno di informazioni sullo scopo e Pro o Contro con i tipi di NUllable? – venkat