错误:在预期条件的上下文中指定的非布尔类型的表达式

Posted

技术标签:

【中文标题】错误:在预期条件的上下文中指定的非布尔类型的表达式【英文标题】:error: an expression of non-boolean type specified in a context where condition is expected 【发布时间】:2013-11-04 12:58:21 【问题描述】:

得到错误:在上下文中指定的非布尔类型的表达式在下面的语法中需要条件。

string Query = "SELECT User.First, User.Last, 
                   Details.Address1, Details.Address2, 
                   Details.County, Details.Country 
                FROM User 
                INNER JOIN Details 
                   on User.Details_DetailsID 
                WHERE User.Last ='" + cbUsers.SelectedItem.ToString() + "'";

【问题讨论】:

【参考方案1】:

在您的INNER JOIN 中,它期望来自比较运算符的布尔结果。

你需要这样说:

ON column = column

也许是ON User.Details_DetailsID = Details.DetailsId

【讨论】:

【参考方案2】:

我想你忘了把相等参数放在内部连接条件中。 请参考以下字符串:

string Query = "SELECT User.First, User.Last, 
               Details.Address1, Details.Address2, 
               Details.County, Details.Country 
            FROM User 
            INNER JOIN Details 
               on User.Details_DetailsID = Details.Details_DetailsID
            WHERE User.Last ='" + cbUsers.SelectedItem.ToString() + "'";

或者您应该检查参数数据类型,并在使用 typecase 的条件时放置 case。

【讨论】:

以上是关于错误:在预期条件的上下文中指定的非布尔类型的表达式的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer 空间查询返回错误在预期条件的上下文中指定的非布尔类型的表达式,靠近 ')'

SQL Server - 在“返回”附近的预期条件的上下文中指定的非布尔类型的表达式

SQL MERGE:在预期条件的上下文中指定的非布尔类型的表达式,靠近“,”

SQL 用户定义函数生成非布尔类型错误

以位为条件的 SQL

在应使用条件的上下文(在 'where' 附近)中指定了非布尔类型的表达式。 关键字 'order' 附近有语法错误。