指定的转换无效。 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.
所以问题是从 bit
到 tinyint
的转换。
看看图片。您将看到我从 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.
所以问题是从 bit
到 tinyint
的转换。