如何将空值传递给asp.net中的datetime数据类型



如何在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());
}

最新更新