我不能为 double 取一个 null?

I can't get a null for double?

在class里面声明了一个属性,称之为A

public double? myDouble {get; set;}

然后,在我的代码中,我故意不分配它。

我尝试将它保存到 SQL 服务器,其中关联的列是浮点数(对应于 C# 中的双精度值)并且可以为空。

然而,当我查询 table 时,myDouble 总是显示 0。

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

如果类型是 float,请尝试使用 float。我认为这不是真正导致问题的原因。

public float myDouble {get; set;}

在保存到 Sql 代码时试试这个:

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

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

我想象的两件事之一正在发生。要么 a) 你在 SQL 服务器中的那个字段上设置了默认约束(很容易在 SSMS 中检查),要么 b) 你在代码中的某处将 0 分配给那个 double(可以通过在中设置断点来检查) Visual Studio 在调用数据库并返回之前。

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