您的位置:首页 > 编程语言 > C#

存储过程返回布尔值以及C#相关处理

2015-09-14 10:40 465 查看
前段时间有在数据库以及程序之间使用到布尔(bool,Boolean)值的问题。

比如在SQL中,你想判断记录是否存? 通常你会这样写:

SELECT CASE WHEN EXISTS(SELECT TOP 1 1 FROM [dbo].[SixSResponsiblePerson] WHERE
[SixS_nbr] = @SixS_nbr AND [UsersId] = @UsersId )
THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END


View Code

在数据库返回值来看,存储过程只返回数据类型bit了,“1” 和“0”。现在我们在C#程序中应用这个存储过程:




其实,在C#中,数据转换为bool值时,只有"0"转换为false,其它值转换为true。

上面的情况一般均没有什么问题,

再看看,数据库的设计:



这个字段可以允许为空,也就意味着有三个值存储,true,false,null

此时我们在写存储过程时,就需要注意了。我们只需判断NULL空或0值为false的就行了,其它判断为真。




Ok,上面的存储过程,还适合另外一种情形,如使用tinyint。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: