c# - 从选择查询返回 bool 值

标签 c# .net sql-server sql-server-2005 tsql

我想选择 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/

相关文章:

sql-server - sqoop导入sql server仅找到dbo表

c# - RSS.NET 无法解析 feedburner 提要

c# - 只返回 View 的 Controller Action 是否有必要异步?

c# - 用于比较值类型的短路运算符的.Net 性能?

c# - mscorlib.dll 中的 System.UnauthorizedAccessException

SQL Server - 基于另一列求和,并与 STUFF/XML PATH 结合?

c# - 四元数转欧拉角算法 - 如何转换为 'Y = Up' 和惯用手之间?

c# - 继承泛型类 T 必须是引用类型

c# - 如何在 C# 中的 SSH 服务器上运行命令?

sql - 添加列时,如何为默认值指定命名约束?