Как передать нулевое значение в тип данных datetime в asp.net? - PullRequest
0 голосов
/ 24 ноября 2011

Как передать нулевое значение в тип данных datetime в asp.net?

cmdInsertUpdateConsultantDetails.Parameters.Add("@DateofExpiry", SqlDbType.DateTime);
if (txtdateofexpiry.Text.Trim() == "")
{
    cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value =
}
else
{
    cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value = 
        Convert.ToDateTime(txtdateofexpiry.Text.Trim());
}

Ответы [ 4 ]

3 голосов
/ 24 ноября 2011

DateTime не является обнуляемым типом.Если вы не укажете значение, оно равно DateTime.MinValue

. Вы можете использовать

DateTime? MyNullableDateTime;

. В этом вопросе более подробно указано в ответе, если выинтересно.

2 голосов
/ 24 ноября 2011

Простой здесь вы можете дать DbNull.Value для передачи NULL значения.

if (txtdateofexpiry.Text.Trim() == "")
{
    cmdInsertUpdateConsultantDetails.Parameters["@DateofExpiry"].Value = DbNull.Value
}

Также рекомендуется использовать DateTime? или Nullable

2 голосов
/ 24 ноября 2011

DateTime - тип значения, он не может быть нулевым.Вместо этого вы можете использовать Nullable<DateTime> (или синтаксическое сокращение DateTime?).

Вот пример:

DateTime? dateTime;
DateTime.TryParseExact(txtdateofexpiry.Text.Trim(), "dd/MM/yyyy", null, DateTimeStyles.None, out dateTime);
0 голосов
/ 24 ноября 2011

вы можете передать его как 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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...