不能在 C# 中使用布尔值作为数据类型作为 SQL Server 的位数据类型的替代品
本文关键字:数据类型 Server 替代品 SQL 布尔值 不能 | 更新日期: 2023-09-27 18:20:15
我知道SQL Server的Bit
数据类型等同于 http://msdn.microsoft.com/en-us/library/ms131092.aspx Boolean
的C#数据类型
由于Bit
可以从 https://msdn.microsoft.com/en-IN/library/ms177603.aspx 中获取值 0、1 或 Null
我正在将 C# 中的变量初始化为 0。
例:
Boolean exmVar = 0;
但是我收到一个错误:
常量值不能转换为布尔值。
仅供参考,我正在将存储过程转换为 C# 代码,因此我只能使用等效Bit
。
如果可以使用任何其他数据类型,请告诉我。
Bit
值可以取值 0、1 或 null,而作为Boolean
值只能取 true 或 false 的值。
为了将位正确映射到数据类型,您需要一个可以取真、假或空值的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
它
仍然是bool
类型,但您需要使用可为空的类型:
bool? value = null; // Same as Nullable<bool> value = null
这是 C# 2.0 附带的一项功能,它允许将值类型(结构(作为Nullable<T>
使用?
作为语法糖。
也就是说,您可以按如下方式声明if
语句:
if(value != null)
{
}
。或者还有:
if(value.HasValue)
{
}
。get是使用语法糖的值(即仅按原样使用变量(或访问其值(即 myVar.Value
(。
扩展Mathis的答案:
//exmVar=false,exmVar=true,exmVar=null
bool?exmVar =item.HasValue?:item.Value:null;