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?)