我知道SQL Server的Bit
数据类型等同于来自http://msdn.microsoft.com/en-us/library/ms131092.aspx的C#的Boolean
数据类型
由于Bit
可以从https://msdn.microsoft.com/en-IN/library/ms177603.aspx
Null
我正在将C#中的变量初始化为0。
示例:
Boolean exmVar = 0;
但是我收到错误:
常量值无法转换为bool。
仅供参考,我正在将存储过程转换为C#代码,因此我必须仅使用Bit
等效代码。
如果可以使用任何其他数据类型,请告诉我。
答案 0 :(得分:1)
Bit
值可以取值 0 , 1 或 null ,其中Boolean
值只能取值 true 或 false 。
为了正确地将您的位映射到数据类型,您需要Nullable Boolean
,其值可以是 true , false 或 null < /强>
声明如下:
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 :(得分: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
)得到值。
答案 2 :(得分:0)
扩展Mathis&#39;回答:
//exmVar=false,exmVar=true,exmVar=null
bool?exmVar =item.HasValue?:item.Value:null;