指定的转换无效。 IDataReader 有问题吗?或者我做错了什么?

The specified conversion is not valid. Is IDataReader buggy? Or what am I doing wrong?

看看图片。您将看到我从 IDataReader 中检索了一个布尔值。但是调用 IdataReader..GetBoolean() 会引发错误:The specified conversion is not valid.

虽然 Convert.ToBoolean(drDatosDco.GetValue(6)) 工作正常。

at System.Data.SqlClient.SqlBuffer.get_Boolean()
at file.cs:line 54

数据库中的列数据类型为 bit,值为 1

问题不在于 IdataReader。 table 类型是 bit,但信息来自 stored procedure,他们将 bit 转换为 tinyint

正如@Flydog57 在上面的评论中所说

From the docs, anything but a BIT resultset column type will throw.

所以问题是从 bittinyint 的转换。