0

两天来我一直在努力解决这个错误,我束手无策。

我的数据库中有一个存储过程,可以搜索其上的员工数据。每当用户尝试使用出生日期字段进行搜索时,浏览器页脚就会弹出一个错误。我尝试了各种解决方案,最后遇到一个错误,上面写着:

"网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/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 '

任何帮助深表感谢 -。-

4

1 回答 1

3

你忘了等号。不过,这种临时查询构建会引发 SQL 注入。

IF @dob <> '1 JAN 1900' SET @S = @S + 'DOB = ''' -- <-- this equal sign was missing after DOB
+  CONVERT(VARCHAR(10), @dob, 102) + ''' AND '
于 2013-11-14T05:12:56.737 回答