我的代码后面有一个SQL命令:
cmd = new SqlCommand("insert into MappingInfo(ActivationDate) values (@ActivationDate)", con);
我想根据某些条件将“当前时间戳”或“空”分配给@ActivationDate
,如下所示:
int ActivateState;
if (rdoActivateMappingYes.Checked)
{
ActivateState = 1;
cmd.Parameters.AddWithValue("@ActivationDate", "CURRENT_TIMESTAMP");
}
else
{
ActivateState = 0;
cmd.Parameters.AddWithValue("@ActivationDate", DBNull.Value);
}
但是,在运行Web应用程序时,我收到以下错误:
{System.Data.SqlClient.SqlException} : {"Conversion failed when converting date and/or time from character string."}
答案 0 :(得分:4)
int ActivateState;
if (rdoActivateMappingYes.Checked)
{
ActivateState = 1;
cmd.Parameters.AddWithValue("@ActivationDate", DateTime.Now);
}
else
{
ActivateState = 0;
cmd.Parameters.AddWithValue("@ActivationDate", DBNull.Value);
}
答案 1 :(得分:3)
信息很明确。
字段ActivationDate是一个DateTime字段,但是您将字符串作为值传递:“CURRENT_TIMESTAMP”
可能您必须传递DateTime值,DateTime.Now或任何其他适合您的应用程序/数据库逻辑的DateTime。
答案 2 :(得分:0)
您可以使用Datetime.parse()方法检查字符串是否为有效的日期格式。
DateTime date = DateTime.Parse("01/01/1900");