我一直在努力解决这个错误两天,并且在我的智慧结束时。
我的数据库上有一个存储过程,用于搜索其上的员工数据。每当用户尝试使用出生日期字段进行搜索时,将弹出浏览器页脚上的错误。我尝试了各种解决方案,最后出现了一个错误:
“网页错误详情
用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; 三叉戟/ 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;平板电脑2.0; .NET4.0C; .NET4.0E)时间戳:星期四,2013年11月14日05:06:57 UTC
消息:Sys.WebForms.PageRequestManagerServerErrorException: '1982.03.26'附近的语法不正确。行:938字符:13代码:0 URI:
消息:Sys.WebForms.PageRequestManagerServerErrorException: '1982.03.26'附近的语法不正确。行:938字符:13代码:0 URI: “
搜索引擎SQL语法如下:
IF @NAME <> 'NULL' SET @S = @S + 'E.ENAME LIKE ''%' + @Name + '%'' AND '
IF @ADdress <> 'NULL' SET @S = @S + '(PADDRESS LIKE ''%' + @ADdress + '%'' OR CADDRESS LIKE ''%' + @ADDRESS + '%'') AND '
IF @dob <> '1 JAN 1900' SET @S = @S + 'DOB ''' + CONVERT(VARCHAR(10), @dob, 102) + ''' AND '
非常感谢任何帮助-.-
答案 0 :(得分:3)
你忘记了等号。但是,这个即席查询构建会引发SQL注入。
IF @dob <> '1 JAN 1900' SET @S = @S + 'DOB = ''' -- <-- this equal sign was missing after DOB
+ CONVERT(VARCHAR(10), @dob, 102) + ''' AND '