我在ASP.net C#中有以下SQL Server错误:
导致将varchar数据类型转换为日期时间数据类型 在超出范围的价值。
我的SQL查询是:
string query = @"update Conference set Conference_name='"
+ name + "',AIMS='" + AIMS + "',Scope='" + scope
+ "',Submission_Deadline='" + submissionDay
+ "',Notification_Deadline='" + notificationDay
+ "',Camera_Ready_submission='" + cameraReadyDay
+ "',Early_authors_registration='" + earlyAuthorsDay
+ "',Start_Date='" + startDay + "',End_Date='" + endDay
+ "',Location='" + location
+ "' where Conference_ID= '" + id+"'";
答案 0 :(得分:1)
我认为您的查询没问题,这是您的数据不好。其中一个日期字段(startDay,EndDay,NotificationDay)看起来不像有效日期。
答案 1 :(得分:1)
也许是时候添加一些验证了。我可以建议RangeValidator,将type设置为日期吗?
答案 2 :(得分:0)
您的某个日期值,可能是开始日期或结束日期无法转换为日期时间。有助于查看数据。
答案 3 :(得分:0)
这与c#ToString()行为有关。由于应用程序的“文化”,ToString()方法默认为一个值。
由于您的应用文化设置,“2011年1月13日”可以字符串化为“2011-01-13”或“2011-13-01”。这可能会导致在尝试找到一年中的13个月时出错。
要解决此问题,我建议使用SqlCommand并设置参数...
请参阅http://www.knowdotnet.com/articles/dynamicsqlparameters.html
示例可以很容易地转换为c#。