从select查询返回一个布尔值

我想选择布尔值:

SELECT field1, field2, 1 as is_field FROM TABLE 

在Visual Studio 2010中我正在做:

 bool b = row.Field("is_field"); 

但我得到了例外:

指定演员表无效。

如何将布尔值作为boolean而不是作为int

从SQL方面,您可以:

 SELECT field1, field2, CAST(1 AS BIT) AS is_field FROM TABLE 

强制它作为BIT而不是int返回。 这应该够了吧

更新:您对使用此类CAST有何顾虑? SQL Server在优化时非常棒,例如上面的查询的执行计划会显示is_field是一个可以预先评估的常量(这里有一篇相关文章: http : //msdn.microsoft.com/en-us/library/ ms175933.aspx )。 即使没有它,如果你担心性能,那么你不应该担心它 – 它将非常不成熟。

Per @ AdaTheDev的建议:

 bool b = row.Field("is_field") == 1;