DataReader: Specified cast is not valid (Int32)
24,905
It isn't a convert - it is a cast. The same as:
short x = 0;
object y = x;
int z = (int)y; // BOOM! InvalidCastException Specified cast is not valid.
In both cases, a short
is not an int
.
If unsure of the type, you might try:
int i = Convert.ToInt32(dataReader.GetValue(3));
Author by
moldovanu
Updated on April 12, 2020Comments
-
moldovanu about 4 years
Why does SqlDataReader throw an exception when converting 0 to integer?
?dataReader(3) 0 {Short} Short: 0 ?dataReader.GetInt16(3) 0 ?dataReader.GetInt32(3) {"Specified cast is not valid."} _HResult: -2147467262 _message: "Specified cast is not valid." Data: {System.Collections.ListDictionaryInternal} HelpLink: Nothing HResult: -2147467262 InnerException: Nothing IsTransient: False Message: "Specified cast is not valid." Source: "System.Data" StackTrace: " at System.Data.SqlClient.SqlBuffer.get_Int32() at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i)" TargetSite: {Int32 get_Int32()}