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

时间:2013-11-17 21:06:55

标签: 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"].Value = sqldatenull;
} else {
    cmd.Parameters.AddWithValue("@FromPeriod", sTempFromPeriod);
}

cmd.ExecuteNonQuery();

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

1 个答案:

答案 0 :(得分:2)

请考虑使用DBNull.Value代替SqlDateTime.Null

例如:

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