我无法获得双倍的空值?

时间:2015-05-21 22:32:17

标签: c# sql-server-2012 nullable

在课堂内,我宣布一个属性,称之为A

public double? myDouble {get; set;}

然后,在我的代码中,我故意将其取消分配。

我尝试将其保存到SQL Server,其中关联列是float(对应于C#中的double)并且可以为空。

然而,当我查询表时,它总是为myDouble显示0。

希望有人可以帮助我。非常感谢..

3 个答案:

答案 0 :(得分:2)

我想象的两件事之一正在发生。要么a)您在SQL Server中对该字段设置了默认约束(易于检入SSMS),或者b)您在代码中的某个地方分配0(可以通过在Visual Studio中设置断点来检查)在您呼叫数据库并继续工作之前,紧接着。)

甚至不知道你的DAL是如何构建的(EF,ADO.NET等),很难给出更具体的建议。

答案 1 :(得分:0)

如果类型为float,请尝试使用float。我不认为这是造成问题的原因。

public float myDouble {get; set;}

答案 2 :(得分:0)

在保存为Sql代码中尝试此操作:

myDouble == null ? DBNull.Value : (double)myDouble;

您需要在数据库中将null存储为DBNull.Value。我希望这会有所帮助:)

相关问题