数据库有个字段叫keyWord
存储的数据格式是这样的   制度,规则     这是关键字
我要读取这个关键字 跟其他条数据的关键字匹配
然后ID从大到小获取前十条显示到repeater上面public void Repeater1Bind()
        {
            int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
            JobLord_Job.Model.RL_Article model = new JobLord_Job.BLL.RL_Article().GetModel(id);
            String[] words = model.KeyWords.Split(',');
            for (int i = 0; i < words.Length; i++)
            {
                DataTable list = new JobLord_Job.BLL.RL_Article().GetList(1000, "KeyWords  like'%" + words[i] + "%'", "ID DESC").Tables[0];
                this.Repeater1.DataSource = list;
                this.Repeater1.DataBind();
            }
        }
每个用逗号分隔的关键字能查到的数据条数都不一样   我怎么控制最后D从大到小获取前十条显示到repeater上面
 

解决方案 »

  1.   

    你可以加个排序字段,或者用ID来排序。 order by ID,name desc这样就可以!
      

  2.   

    select distinct top 10 * from xxx order by id desc  难道是这样的  
      

  3.   

    完全可以在数据库一次搞定啊~~~~~~~~~~~~~~~   1。 模糊查询     (Sql: in)
        2。从大到小排序  (sql:DESC)
        3。取前10条     (sql: TOP 10) 完事。。
      

  4.   

    GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC")
      

  5.   

    咿呀 上面说错了  (1。 要用模糊查询 不能用 IN )(SLQ : LIKE )
      

  6.   

    select distinct top 10 * from xxx where KeyWord like '%***%' order by id desc
    ??
      

  7.   

    难道不是写SQL吗  先用Split(',')切出关键字
    然后再查  select distinct top 10 * from xxx where order by id desc  
      

  8.   

    new JobLord_Job.BLL.RL_Article().GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC")
    你这个方法应该已经实现 条数 筛选 排序的功能了
      

  9.   

    public void Repeater1Bind()
            {
                JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
                int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
                JobLord_Job.Model.RL_Article model = new JobLord_Job.BLL.RL_Article().GetModel(id);
                String[] words = model.KeyWords.Split(',');
                string sql = "";
                for (int i = 0; i < words.Length; i++)
                {
                     sql = "select distinct top 10 * from RL_Article where KeyWords  like'%" + words[i] + "%'";              
                }
                this.Repeater1.DataSource = bll_pub.GetQuery(sql + " order by ID desc").Tables[0];
                this.Repeater1.DataBind();
            }你们的意思说是这样吗?
      

  10.   

    [size=12px]要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!![/size]
      

  11.   

    要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!
      

  12.   

    DataTable list = new JobLord_Job.BLL.RL_Article().GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC").Tables[0];
    把第二个参数改成 匹配所有关键字就行了
      

  13.   

    public void Repeater1Bind()
       {
       JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
       int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
       JobLord_Job.Model.RL_Article model = new JobLord_Job.BLL.RL_Article().GetModel(id);
       String[] words = model.KeyWords.Split(',');
       string sql = "select distinct top 10 * from RL_Article where  1=1 ";
       for (int i = 0; i < words.Length; i++)
       {
         if(words.Length > 1&&i!=words.Length-1)
         {
         sql += " KeyWords like'%" + words[i] + "%' or ";   
        }else
        {
          sql += " KeyWords like'%" + words[i] + "%'";   
        }
      }
       this.Repeater1.DataSource = bll_pub.GetQuery(sql + " order by ID desc").Tables[0];
       this.Repeater1.DataBind();
       }
      

  14.   

    public void Repeater1Bind()
      {
      int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
      JobLord_Job.Model.RL_Article model = new JobLord_Job.BLL.RL_Article().GetModel(id);
      String[] words = model.KeyWords.Split(',');
      for (int i = 0; i < words.Length; i++)
      {
      DataTable list = new JobLord_Job.BLL.RL_Article().GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC").Tables[0];
      list.DefaultView.Sort = "ID DESC";
      this.Repeater1.DataSource = list;
      this.Repeater1.DataBind();
      }
      }
      

  15.   

    1。 模糊查询 (Sql: in)
      2。从大到小排序 (sql:DESC)
      3。取前10条 (sql: TOP 10)很条理嘛
      

  16.   

    可以了·······少了个and·····
    偶吧好厉害!!!
      

  17.   

    public void Repeater1Bind()
      {
      JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
      int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
      JobLord_Job.Model.RL_Article model = new JobLord_Job.BLL.RL_Article().GetModel(id);
      String[] words = model.KeyWords.Split(',');
      string sql = "select distinct top 10 * from RL_Article  ";  for (int i = 0; i < words.Length; i++)
      {
      if(words.Length > 1&&i!=words.Length-1)
      {
      sql += " where KeyWords like'%" + words[i] + "%' or";   
      }else
      {
      sql += " where KeyWords like'%" + words[i] + "%'";   
      }
      }
      this.Repeater1.DataSource = bll_pub.GetQuery(sql + " order by ID desc").Tables[0];
      this.Repeater1.DataBind();
      }
     
    这样应该可以
      

  18.   

    我错了~~~ 少给你写了个 ADN  。。
    实际原理很简单。。(就是拼一个sql语句) 如果还有什么问题。。你可以在 this.Repeater1.DataSource = bll_pub.GetQuery(sql + " order by ID desc").Tables[0];
     这一行打个断点。。看最后生成的 sql 语句是什么,直接放 SQL SERVER 里面运行一下。。就很明显了
      

  19.   

    这样啊~~~ 我整天看淘宝的客服在那 亲啊,亲的。     原来 亲一下和亲两下是不一样的啊!。。out了。
      

  20.   

    select * from (select * ,row_number()over(order by id desc) 序号
    from RL_Article where  KeyWords  like '%aaaa%')
    where 序号<=10
      

  21.   

    public void Repeater1Bind()
      {
      JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
      int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
      JobLord_Job.Model.RL_Article model = new JobLord_Job.BLL.RL_Article().GetModel(id);
      String[] words = model.KeyWords.Split(',');
      string sql = "select distinct top 10 * from RL_Article ";  
      string sqlstr=" "
      for (int i = 0; i < words.Length; i++)
      {
      if(words.Length > 1&&i!=words.Length-1)
      {
       sqlstr+= " KeyWords like'%" + words[i] + "%' or";   
      }else
      {
      sqlstr+= " KeyWords like'%" + words[i] + "%'";   
      }
      }
      if(words.Length > 1)
      {
        sqlstr=sqlstr.SubString(0,sqlstr.lengt-2);
       }
      sql =sql + sqlstr;
      this.Repeater1.DataSource = bll_pub.GetQuery(sql + " order by ID desc").Tables[0];
      this.Repeater1.DataBind();
      }