错误:在updateCommand时从字符串转换日期和/或时间时转换失败

时间:2012-01-31 11:03:19

标签: gridview sqldatasource

我有这个gridview,我使用sqldatasource

这是我的选择命令

SELECT Date.dateAvailable FROM LessonDate INNER JOIN Date ON LessonDate.dateID = Date.dateID WHERE (LessonDate.lessonID = @lessonID)

然而,当我想更新dateAvailable列

UPDATE       Date
SET                dateAvailable = @dateAvailable
FROM            Date INNER JOIN
                         LessonDate ON Date.dateID = LessonDate.dateID
WHERE        (LesssonDate.dateID = @LessonDateID)

然而,当我点击excute查询时,它会让我在从字符串转换日期和/或时间时错误转换失败

那有什么不对?

1 个答案:

答案 0 :(得分:-2)

您的日期格式不正确或无效。问题是最有可能的@dateAvailable。这很可能是

  • 不是有效的日期/时间,例如'2013-15-1'(15个月不存在)
  • 超出范围。 SQL Server可以表示某些值之间的日期。
  • @dateAvailable包含有效值的null或totall。
  • 您的@dateAvailable字段中缺少
  • 逗号

要解决此问题,请将@dateAvailable更改为更正日期(仅供测试)

UPDATE date 
SET    dateavailable = '2013-1-1'   <-- I changed only this value 
FROM   date 
       INNER JOIN lessondate 
               ON date.dateid = lessondate.dateid 
WHERE  ( lesssondate.dateid = @LessonDateID ) 

在程序中运行上述查询。如果它运行,这意味着您的问题确实是日期时间值。或者,您可以在标签控件中打印查询,并准确查看您的查询。