如何在asp.net中传递空值给datetime数据类型?
cmdInsertUpdateConsultantDetails.Parameters.Add("@DateofExpiry", SqlDbType.DateTime);
if (txtdateofexpiry.Text.Trim() == "")
{
cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value =
}
else
{
cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value =
Convert.ToDateTime(txtdateofexpiry.Text.Trim());
}
DateTime不是一个可空的类型。如果你不提供一个值它就等于DateTime。MinValue
可以使用
DateTime? MyNullableDateTime;
如果你感兴趣,这个问题的答案中有更多的细节。
DateTime是一个值类型,不能为空。您可以使用Nullable<DateTime>
(或语法简写形式DateTime?
)来代替它。
下面是一个例子:
DateTime? dateTime;
DateTime.TryParseExact(txtdateofexpiry.Text.Trim(), "dd/MM/yyyy", null, DateTimeStyles.None, out dateTime);
简单这里你可以给DbNull.Value
传递NULL
值
if (txtdateofexpiry.Text.Trim() == "")
{
cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value = DbNull.Value
}
还建议使用DateTime?
或可空
您可以将其作为DBNull.Value
传递。所以应该是
cmdInsertUpdateConsultantDetails.Parameters.Add("@DateofExpiry", SqlDbType.DateTime);
if (txtdateofexpiry.Text.Trim() == "")
{
cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value = DBNull.Value;
}
else
{
cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value =
Convert.ToDateTime(txtdateofexpiry.Text.Trim());
}