试图更新数据库中的值时出错(Error when trying to update values i

2019-10-29 04:23发布

我有下面的C#/查询:

TrackDuration =TimeSpan.Parse( Request.Form["TrackDuration"].ToString());
string InsertQuery = string.Format("UPDATE tblTracks SET  TrackLength={0}, TrackDuration='{1}', TrackName='{2}',TrackDescription='{3}',TrackMap='{4}',DifficultLevel={5},OverallHeight={6},IsCircular='{7}', ForBeginners='{8}',StartPoint='{9}',ParkingPlace='{10}',SeasonOfYear={11},TrackLocation={12}, Images='{13}' WHERE UserID={14}",
                                                                      TrackLength, TrackDuration, TrackName, TrackDescription, TrackMap, DifficultID, OverallHeight, IsCircular, ForBeginners, StartPoint, ParkingPlace, SeasonID, AreaID, ImageList, UserID);

但是我得到这个错误信息:

在UPDATE语句的语法错误

在查询表达式语法错误(缺少操作员)

我真的想解决这个问题,但我不能。

我怎样才能解决这个问题呢?

更新:

这是查询的价值:

UPDATE tblTracks SET  TrackLength=35, TrackDuration='02:30:00', TrackName='45',TrackDescription='<p>sometext.</p>
',TrackMap='f',DifficultLevel=3,OverallHeight=450,IsCircular='true', ForBeginners='false',StartPoint='<p>קיבוץיסעור </p>
',ParkingPlace='<p>כניסה לקיבוץ יסעור</p>
',SeasonOfYear=1,TrackLocation=3, Images='' WHERE UserID=1

在SQL值类型是:

TrackLength = number ; TrackDuration = date/time ; TrackName= string ;TrackDescription= string; TrackMap = string; DifficultLevel=number;OverallHeight=number;IsCircular=true/false;ForBeginners=true/false;
StartPoint=string; ParkingPlace=string; SeasonOfYear=number; TrackLocation=number;Images=string

Answer 1:

'02:30:00'不是日期时间字段DB一个正确的值,AFAIK。 默认格式是由控制日期格式设置 。

此外,“20130412”应该在任何情况下工作,但由于时间字段。 您需要格式化TrackDuration正确或使用CAST/CONVERT 。 由于TimeSpan不包含日期部分(它代表的持续时间,而不是在一个时间点),你只能弥补(如前面加上“20100101”),但是这是一个可怕的黑客。

正确的解决方法是使用正确的数据库字段类型。

'02:30:00' ,如果该字段为的可能工作time类型。 请阅读一些有关在SQL Server时间类型 。

更妙的是,你为什么不使用纯整数,以秒为时间? 持续时间不是日期反正。

在更大的问题是,你正在连接字符串设置命令文本,打开你的SQL注入攻击。 如果我命名赛道a';DROP TABLE tblTracks;--你的数据库是敬酒:

UPDATE tblTracks SET TrackLength=35, 
                     TrackDuration='02:30:00', 
                     TrackName='a';DROP TABLE tblTracks;-- ...


文章来源: Error when trying to update values in database