C# 如何使用asp.net和命令参数在Sql Server日期列中插入空值

C# 如何使用asp.net和命令参数在Sql Server日期列中插入空值,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有以下代码: SqlDateTime sqldatenull = SqlDateTime.Null; sSql = "INSERT INTO mydb.dbo.myTable(FromPeriod) Values (@FromPeriod)"; if (sFromPeriod.Length == 0) { cmd.Parameters.Add("@FromPeriod", SqlDbType.DateTime); cmd.Parameters["@FromPeriod"].

我有以下代码:

SqlDateTime sqldatenull = SqlDateTime.Null; 
sSql = "INSERT INTO mydb.dbo.myTable(FromPeriod) Values (@FromPeriod)";

if (sFromPeriod.Length == 0) {
    cmd.Parameters.Add("@FromPeriod", SqlDbType.DateTime);
    cmd.Parameters["@FromPeriod"].Value = sqldatenull;
} else {
    cmd.Parameters.AddWithValue("@FromPeriod", sTempFromPeriod);
}

cmd.ExecuteNonQuery();

sFromPeriod是一个日期,当其长度为零时,我收到错误:从字符串转换日期和/或时间时转换失败。当sFromPeriod有一个值时,代码工作正常。我还使用了DBNull.Value代替sqldatenull,并收到了相同的错误。我缺少什么?

考虑使用
DBNull.Value
而不是
SqlDateTime.Null

例如:

cmd.Parameters["@FromPeriod"].Value = DBNull.Value;

您的列是否接受
null
值?您是否知道
sFromPeriod
sTempFromPeriod
不是一回事?请查看可为null的数据类型(SqlDateTime?)