2015-11-01 66 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; 
相關問題