SQL:不正确的语法错误,用于搜索出生日期的存储过程

时间:2013-11-14 05:09:44

标签: sql search syntax

我一直在努力解决这个错误两天,并且在我的智慧结束时。

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

  

“网页错误详情

     

用户代理: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 '

非常感谢任何帮助-.-

1 个答案:

答案 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 '