2015-11-01 68 views
-1

我知道Bit数据类型的SQL Server相当于从http://msdn.microsoft.com/en-us/library/ms131092.aspx不能在C#中使用布尔作为数据类型作为替代的SQL Server位数据类型

Boolean数据类型的C#由于Bit可以采取值0,1或Nullhttps://msdn.microsoft.com/en-IN/library/ms177603.aspx

我被初始化我在C#变量为0。

实施例:

Boolean exmVar = 0; 

不过,我得到一个错误:

Constant value cannot be converted to a bool.

通知你,我将存储过程中进入C#代码,所以我必须用Bit只相当于。

请让我知道是否可以使用任何其他数据类型。

+2

'布尔exmVar = FALSE;' – Fabio

+0

啊,但问题是,可变应该能够仅保持值0,1或空 – user3452275

回答

1

Bit值可以取的值,或其中作为Boolean值只能取的值。

为了您的正确位映射到数据类型,你需要一个Nullable Boolean可以采取的真正值。

声明它是这样:

Boolean? exmVar; 

而且你可以指定它是这样的:

exmVar = true; 

exmVar = false; 

exmVar = null; 

如果你想指定0或1到你的布尔变量,你必须使用Convert.ToBoolean

exmVar = Convert.ToBoolean(0); // Sets exmVar to false 
exmVar = Convert.ToBoolean(1); // Sets exmVar to true 
1

它仍然是bool类型,但您需要使用种空类型

bool? value = null; // Same as Nullable<bool> value = null 

这是与C#2.0传来的特征,它允许向盒值类型(结构),为Nullable<T>使用?作为语法糖。

也就是说,你可以按照如下声明if声明:

if(value != null) 
{ 
} 

...或者也:

if(value.HasValue) 
{ 
} 

...和得到的是价值或者使用语法糖(即刚使用变量,如)或访问其值(即myVar.Value)。

0

扩展在Mathis的回答:

//exmVar=false,exmVar=true,exmVar=null 
bool?exmVar =item.HasValue?:item.Value:null; 
相关问题