首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串未被识别为varchar列上的有效布尔错误

字符串未被识别为varchar列上的有效布尔错误
EN

Stack Overflow用户
提问于 2013-09-07 11:05:17
回答 1查看 1.2K关注 0票数 0

我得到了这个错误:

代码语言:javascript
复制
String was not recognized as a valid Boolean.Couldn't store <No> in meetsstd Column.  Expected type is Boolean

当我运行此查询时:

代码语言:javascript
复制
SELECT * FROM work_nylustis_2013_q3.nylustis_details WHERE siteid = 'NYLUSTIS-155718'  LIMIT 50

从下面的代码:

代码语言:javascript
复制
Adapter.SelectCommand = New NpgsqlCommand(SQL, MLConnect)
Adapter.Fill(subDT)   ' This line throws error

meetsstd字段是一个varchar(3),它确实存储了'Yes‘或'No’值。这怎么会与布尔值混淆-- varchar不应该关心is是“Yes”,还是“Si”,还是“Oui”?而且它只发生在表中28,000条记录中的27条记录上。

我通常将这种奇怪归咎于npgsql,但堆栈跟踪中的最后一项是: System.Data.DataColumn.set_Item(Int32记录,对象值)

有什么线索吗?

谢谢!布拉德

EN

回答 1

Stack Overflow用户

发布于 2013-09-10 20:40:12

要检查是数据库问题还是驱动程序问题,您可以使用当前环境将问题减少到一行和一列:

代码语言:javascript
复制
SELECT meetsstd FROM work_nylustis_2013_q3.nylustis_details WHERE sitenum=1

(当然你必须把sitenum改成主键)

然后使用psqlpgAdmin或一些基于JDBC/ODBC的通用编辑器尝试这样的查询。

如果psql显示这样的记录,这会在基于Npgsql的应用程序中引发错误,那么问题出在Npgsql驱动程序或显示查询结果方面。

如果其他工具显示这种奇怪的错误,那么问题出在您的数据上。

您是否更改了meetsstd字段的类型?你是否可以尝试在一些网格上显示它,这个网格使用了转换为Yes/No的布尔值字段来显示?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18669263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档