<%
  Dim sltCnd,sql,sKey
  sltCnd = Request("slt")
  sKey = Request("key")
  'sltCnd=title:职位名称 type:职位类别 location:工作地点 company:公司名称 main:主要技能
  If sltCnd="title" Then
    sql = "Select * From Job Where Title like '%"&sKey&"%' Order By PostTime Desc"
  ElseIf sltCnd="type" Then
    sql = "Select * From Job Where Type Like '%"&sKey&"%' Order By PostTime Desc"
  ElseIf sltCnd="location" Then
    sql = "Select * From Job Where WorkPlace Like '%"&sKey&"%' Order By PostTime Desc"
  ElseIf sltCnd="company" Then
    sql = "Select j.*,c.* From Job j,Company c Where j.UserName=c.CName And c.Company Like '%"&sKey&"%' Order By j.PostTime Desc"
  ElseIf sltCnd="main" Then
    sql = "Select * From Job Where Comment like '%"&sKey&"%' Order By PostTime Desc"
  End If
%>    
其中slt的值决定查询条件,文本域key的值表示查询关键字
要怎么把上面的代码转换成sql的存储过程语句?????

解决方案 »

  1.   

    两种方法,一是把两个参数都传到存储过程中,由存储过程判断如何查询,第二种方法是把有关查询条件和查询表格的语句在ASP里设置一下再传到存储过程中,在存储过程中分成两种情况来进行查询.
      

  2.   

    传两个参数,存储过程这样写就行了:
    create procedure [dbo].[getanswer]
    @sltcnd nvarchar(20),
    @skey nvarchar(20)
    as
    begin
      If @sltCnd='title'
        Select * From Job Where Title like '%' + @sKey& + '%' Order By PostTime Desc
      Else If @sltCnd='type'
        Select * From Job Where Type Like '%' + @sKey + '%' Order By PostTime Desc
      Else If @sltCnd='location'
        Select * From Job Where WorkPlace Like '%' + @sKey + '%' Order By PostTime Desc
      Else If @sltCnd='company'
        Select j.*,c.* From Job j,Company c Where j.UserName=c.CName And c.Company Like '%' + @sKey + '%' Order By j.PostTime Desc
      Else If @sltCnd='main'
        Select * From Job Where Comment like '%' + @sKey + '%' Order By PostTime Desc
    end
      

  3.   

    回复三楼:服务器: 消息 403,级别 16,状态 1,过程 getanswer,行 7
    对数据类型而言运算符无效。运算符为 boolean AND,类型为 nvarchar。