我有以下代码:
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并收到了同样的错误。我错过了什么?
答案 0 :(得分:2)
请考虑使用DBNull.Value
代替SqlDateTime.Null
。
例如:
cmd.Parameters["@FromPeriod"].Value = DBNull.Value;