好吧,这一个是让我完全疯了。我在PostgreSQL数据库中有一个表,我试图用OdbcDataReader.GetBoolean(int col)获取特定记录的布尔值列。奇怪的问题与OdbcDataReader.GetBoolean()投掷演员是无效的例外布尔列
问题是GetBoolean()一直抛出一个强制转换是无效的异常,即使相同的代码在几天前工作。更奇怪的是相同的代码在另一种形式下工作正常。
从我的应用程序的以前的工作版本所做的唯一更改是在表中添加一列。也就是说,我需要的列的索引没有改变。噢,获取GetValue()的值,然后在结果上调用GetType()将返回System.String,并将true/false值转换为1/0。
我完全没有想法。
感谢您的答复。该列绝对是布尔类型的。在它上面调用reader.GetDataTypeName()会返回“bool”,但是任何尝试从GetBoolean()中检索值都会产生很好的异常。此外,就像我说的,完全相同的调用在应用程序的其他地方也可以使用。 – dandan78 2009-07-17 12:04:06
嗯..那很奇怪。完全相同的SQL语句? – tomfanning 2009-07-17 12:23:45