在课堂内,我宣布一个属性,称之为A
public double? myDouble {get; set;}
然后,在我的代码中,我故意将其取消分配。
我尝试将其保存到SQL Server,其中关联列是float(对应于C#中的double)并且可以为空。
然而,当我查询表时,它总是为myDouble显示0。
希望有人可以帮助我。非常感谢..
答案 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。我希望这会有所帮助:)