C# 在ASP.NET SQL server中将DatetimeField设置为null

C# 在ASP.NET SQL server中将DatetimeField设置为null,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有以下代码将数据插入表中。表中有字段BlockTime,类型为DateTime。我想将BlockTime初始化为null。这是我希望将其初始化为null的代码部分 var tracktable = new TrackTable { IPAddress = ipadd, LastLoginResult = "Failed", LastLoginTime = DateTime.Now, LoginAttemptStreak = 1, BlockTime = null // Set BlockTim

我有以下代码将数据插入表中。表中有字段BlockTime,类型为DateTime。我想将BlockTime初始化为null。这是我希望将其初始化为null的代码部分

var tracktable = new TrackTable
{
IPAddress = ipadd,
LastLoginResult = "Failed",
LastLoginTime = DateTime.Now,
LoginAttemptStreak = 1,
BlockTime = null // Set BlockTime to null
};
model.InsertTrack(tracktable);
上述方法给出了误差。
如何将变量初始化为null。我在谷歌上搜索,发现了类似的问题。我复制粘贴了这些解决方案,但没有一个有效。如何在开始时将上述BlockTime设置为null。在c#中编辑之前,是否必须在sql server中执行任何操作。

您需要使用DBNull.Value并确保您的属性可为null

var tracktable = new TrackTable
{
IPAddress = ipadd,
LastLoginResult = "Failed",
LastLoginTime = DateTime.Now,
LoginAttemptStreak = 1,
BlockTime = DBNull.Value
};
model.InsertTrack(tracktable);

BlockTime必须是可为空的datetime

公共约会时间?块时间{get;set;}

公共可空块时间{get;set;}


“上述方法会产生错误。”
-阅读错误消息始终是良好的第一步。我更改了代码。它显示“无法解析名称数据库”错误。请再次查看我的代码。使用DBNull.Value并告诉我它是否有效。我纠正了打字错误。现在它显示“不能隐式地将System.DBNull类型转换为System.Datetime”。您需要使BlockTime为Null。这是在其他答案。就像你在其他回答中看到的那样,只需使用一个问号,我应该将其放在结构内部还是外部?无论TrackTable定义在哪里。它是类还是结构?