Ale*_*lex 8 c# sql sql-server null default
我尝试在我的数据库中为字段类型'date'插入值null(DateTime),但我总是得到'0001-01-01'.我不明白,这个字段"允许空值",我不知道为什么我有这个默认值.
我正在使用C#asp .net和MVC(实体框架),这是我的代码:
Budget_Synthesis newBS = new Budget_Synthesis
{
Budget_Code = newBudgetCode,
Last_Modified_Date = null
};
db.Budget_Synthesis.AddObject(newBS);
Run Code Online (Sandbox Code Playgroud)
Last_Modified_Date是否输入System.DateTime?所以我不知道为什么他们改变这个'null'.
如果我尝试在我的应用程序上显示值,我会得到 01/01/0001 00:00:00
并0001-01-01使用SSMS
有人可以解释为什么我不能得到一个真正的'空'?
最好的祝福
如果Last_Modified_Date是 type DateTime,你不能有“真正的空”,因为DateTime 结构- 正如其他人已经说过的 - 不可为空。所以你的示例代码甚至不会编译。
如果Last_Modified_Date是DateTime?( Nullable<DateTime>)类型,您的代码是正确的,但是 - 正如@Nikola Dimitroff 在他的回答中所说 - 您的数据库中不能有“真正的空”,因为默认值为DateTime?01/01/0001 00:00:00 .
您正在寻找的“真正的空”是DBNull.Value,但您只能将它用于System.DBNull类型;如果你赋值Last_Modified_Date = DBNull.Value,无论Last_Modified_Date是什么类型,你的代码都不会编译。
| 归档时间: |
|
| 查看次数: |
32814 次 |
| 最近记录: |