请教:如何设置查询,检索数据库中几个字段是否含有"关键字",并将检索到的数据显示出来,如是text类型,就显示含有"关键字"的前后一句话的内容.我用asp.net+vb.net 显示用datagrid.
谢谢大家.

解决方案 »

  1.   

    看看sql的全文检索能否满足你的要求
      

  2.   

    where 字段 like %关键字%
      

  3.   

    用CHARINDEX
    返回字符串中指定表达式的起始位置。 
    具体用法查SqlServer帮助
      

  4.   

    你所说的前后总要有个标准。比如如果你有个累加的ID,我想可以写:
    SELECT * FROM a WHERE id in ( SELECT id+1,id-1 FROM a WHERE youwant LIKE ~~~ )
    呵呵,是这个意思吗?我瞎写,没试过。
      

  5.   

    想做成这个样子:http://www.hc.gov.cn/中的站内搜索.比如填入"市长"检索出来的内容就有文章内容中包含"市长"这个词就把这个语前后的句子显示出来.就这个样子.
    谢谢大家!!
      

  6.   

    用CHARINDEX返回字符串中指定表达式的起始位置,然后用SUBSTRING取出你关键字前后的一部分字
    比如
    declare @count int
    select @count=charindex('cc',t1)
    from tt1
    where charindex('cc',t1)>0
    select substring(t1,@count-5,@count+5)
    from tt1 where charindex('cc',t1)>0
    这只是简单的提供一下思路,是可行的,只要区别@count的几种情况就可以了。
      

  7.   

    你要想做成GOOGLE那种搜索的话用SQL是做不成的
      

  8.   

    我是要搜索自己的数据库,有具体的例子吗? 
    chg515(瞎玩)的思路我想想.
      

  9.   

    where (字段1 like %关键字%) or  (字段2 like %关键字%) or (字段3 like %关键字% )
      

  10.   

    用CHARINDEX返回字符串中指定表达式的起始位置,然后用SUBSTRING取出你关键字前后的一部分字
    比如
    declare @count int
    select @count=charindex('cc',t1)
    from tt1
    where charindex('cc',t1)>0
    select substring(t1,@count-5,@count+5)
    from tt1 where charindex('cc',t1)>0
    这只是简单的提供一下思路,是可行的,只要区别@count的几种情况就可以了。
      

  11.   

    学习关注,索引是必须的,不过like语句……?
    like关键字能用单方向就单方向的
    最好做成存储过程吧
      

  12.   

    cn.ConnectionString = "Server=192.168.203.30;Database=IQC;User Id=kye;Password=kye;"
    cn.Open()
       Dim objcm As New SqlCommand
       Dim objad As New SqlDataAdapter
       Dim ds As New DataSet
       objcm.Connection = cnIf DropDownList1.SelectedItem.Text = "報告編號" Then
    objcm.CommandText = "select * from iqcreport where iqc_bh like '%" + TextBox1.Text + "%'"
       objad.SelectCommand = objcm
       objad.Fill(ds)