【发布时间】:2013-04-05 00:40:14
【问题描述】:
我有以下 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
【问题讨论】:
-
当 SQL DBMS 抛出错误时,'near' 建议怎么办?您应该检查您的列(在 UPDATE 查询中)数据类型,其中“文本”(varchar,char,...)应该包含在一对单引号中,我认为您应该将此规则应用于所有列。最后是关于图像栏的?是存储图像路径的二进制/图像还是简单的文本类型?
-
最后一个值 us 字符串。错误出现在“TrackDuration”中,即时间,我不知道为什么......
-
请参数化您的查询。
-
嘿,如果是这样,我确定您将不正确的日期时间值格式传递到 TrackDuration 列的 UPDATE 查询中,请提供一些您为查询设置/准备的值的示例。
-
如果您显示
InsertQuery的格式化值而不是格式化行,那将是显而易见的。
标签: c# database sql-update insert-update