无法将类型为System.Int64的对象强制转换为类型为System.Int32的对象

时间:2019-10-27 00:48:13

标签: c# sql

我收到Unable to cast object of type 'System.Int64' to type 'System.Int32'

item.ItemCount = reader.GetInt32(reader.GetOrdinal("amount"));

我尝试过:

item.ItemCount = reader.GetInt64(reader.GetOrdinal("amount"));

但是我得到了

Error   CS0266  
Cannot implicitly convert type 'long' to 'int'. 
An explicit conversion exists (are you missing a cast?)

该字段为bigint,这是我第一次使用.Net。

1 个答案:

答案 0 :(得分:1)

您必须使用GetInt64

item.ItemCount = reader.GetInt64(reader.GetOrdinal("amount"));

SQL bigint与.NET long等效,GetInt64返回long,而GetInt32返回int

有关更多详细信息,请参见this documentation