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

前段时间有在数据库以及程序之间拔取到布尔(bool,Boolean)值的题目。

例如在SQL中,你想看清记录是否存? 平日你会如此写:

C# 1C# 2

DECLARE @IsExists BIT = 0

IF EXISTS(SELECT TOP 1 1  FROM [dbo].[SixSResponsiblePerson] WHERE [SixS_nbr] = @SixS_nbr AND [UsersId] = @UsersId)
    SET @IsExists = 1

SELECT @IsExists

View Code

抑或您能够遵照Insus.NET的习惯写法:

C# 3C# 4

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# 5

其实,在C#中,数据转换为bool值时,唯有”0″转换为false,此外值转换为true。

 下边的事态相似均没有什么问题,

再看看,数据库的计划性:
C# 6

 

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

这时我们在写存储过程时,就需要专注了。我们只需判断NULL空或0值为false的就行了,此外判断为真。
C# 7

 

Ok,下面的积存过程,还适合其它一种情况,如采用tinyint。

 

相关文章