DataReader GetInt32() & GetInt16()

本文关键字:GetInt16 amp DataReader GetInt32 | 更新日期: 2023-09-27 18:11:45

我正在尝试使用SqlDataReader读取smallint列值。

dataReader.GetInt32()抛出异常为"指定的强制转换无效"。

,

dataReader.GetInt16 ()

运行正常。

如果Int16可以像这里一样赋值给Int32,你能解释一下为什么GetInt32()失败吗

 Int16 i16 = 1;
 Int32 i32 = i16;

DataReader GetInt32() & GetInt16()

GetInt##()方法寻找精确匹配,'无效转换'错误是关于DbType到ClrType转换。

你是正确的,GetInt32()可以读取较小的类型,但随后也可能无意中发生。

GetDouble()应该读int, long甚至decimal而不抱怨吗?
我想还是不要了。