我想选择 bool 值:
SELECT field1, field2, 1 as is_field
FROM TABLE
在 Visual Studio 2010 中我正在做:
bool b = row.Field<bool>("is_field");
但我得到了异常(exception):
Specified cast is not valid.
如何以 boolean
而不是 int
的形式返回 bool 值?
最佳答案
从 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)。即使没有它,如果您担心性能,那么您也不应该担心它 - 这将是过早的优化。
关于c# - 从选择查询返回 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5088577/