当前位置:编程学习 > C#/ASP.NET >>

伦家要控制Repeater条数!!!

数据库有个字段叫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上面
  --------------------编程问答-------------------- 先把每个关键字所有匹配的取出来  然后根据ID从大到小取前十条  --------------------编程问答-------------------- 你可以加个排序字段,或者用ID来排序。 order by ID,name desc这样就可以! --------------------编程问答-------------------- --------------------编程问答-------------------- select distinct top 10 * from xxx order by id desc  难道是这样的   --------------------编程问答-------------------- 完全可以在数据库一次搞定啊~~~~~~~~~~~~~~~

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

 完事。。。。。。。。。。。 --------------------编程问答-------------------- GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC") --------------------编程问答-------------------- 求有效代码啊!!!各位亲!!!!!!!! --------------------编程问答-------------------- 咿呀 上面说错了  (1。 要用模糊查询 不能用 IN )(SLQ : LIKE ) --------------------编程问答--------------------
引用 5 楼  的回复:
完全可以在数据库一次搞定啊~~~~~~~~~~~~~~~

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

 完事。。。。。。。。。。。



这不是写sql好吗亲 --------------------编程问答-------------------- select distinct top 10 * from xxx where KeyWord like '%***%' order by id desc
?? --------------------编程问答--------------------
引用 9 楼 sophiatangrongxiang 的回复:
引用 5 楼  的回复:
完全可以在数据库一次搞定啊~~~~~~~~~~~~~~~

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

完事。。。。。。。。。。。



这不是写sql好吗亲


对啊~~~亲亲。。。。。。

  你想要怎么解决 (我只是给你你个解决方案啊?) 不可以这样做么? --------------------编程问答-------------------- 难道不是写SQL吗  先用Split(',')切出关键字
然后再查  select distinct top 10 * from xxx where order by id desc   --------------------编程问答--------------------
引用 10 楼  的回复:
select distinct top 10 * from xxx where KeyWord like '%***%' order by id desc
??


不对我的需求 --------------------编程问答-------------------- new JobLord_Job.BLL.RL_Article().GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC")
你这个方法应该已经实现 条数 筛选 排序的功能了 --------------------编程问答-------------------- 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();
        }

你们的意思说是这样吗? --------------------编程问答-------------------- [size=12px]要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!![/size] --------------------编程问答-------------------- 要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!! --------------------编程问答--------------------
引用 15 楼  的回复:
public void Repeater1Bind()
        {
            JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
            int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
    ……



意思是这样。。但是你那个循环是错误滴。。。。。。。。。。。 --------------------编程问答-------------------- 要先把分别把每个关键字所有匹配数据全部的取出来 然后根据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从大到小取前十条 !!!!!!!!!! --------------------编程问答-------------------- 好吧  我承认我疯了 --------------------编程问答-------------------- DataTable list = new JobLord_Job.BLL.RL_Article().GetList(1000, "KeyWords like'%" + words[i] + "%'", "ID DESC").Tables[0];
把第二个参数改成 匹配所有关键字就行了 --------------------编程问答--------------------
引用 17 楼  的回复:
要先把分别把每个关键字所有匹配数据全部的取出来 然后根据ID从大到小取前十条 !!!!!!!!!!



这样跟全部取出来再排序有啥区别呢????   --------------------编程问答-------------------- 谁敢不敢给个有效代码!!!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 淡定 别太急 你全部取出来再取前10条 和直接取前10条有什么区别 --------------------编程问答--------------------
引用 24 楼  的回复:
淡定 别太急 你全部取出来再取前10条 和直接取前10条有什么区别



额  没区别  但是没办法一次全部把每个关键字匹配的数据全读出来啊·······这不是只能循环一个个用逗号分隔的关键字分别读取啊 --------------------编程问答-------------------- 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();
   }
--------------------编程问答--------------------
引用 26 楼  的回复:
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_Art……



代码已经给你了 试试效果吧~~~ 亲亲 --------------------编程问答-------------------- 好 我去试试  谢谢 你会有福报的哦! --------------------编程问答-------------------- 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();
  }
  }

--------------------编程问答--------------------
引用 28 楼  的回复:
好 我去试试  谢谢 你会有福报的哦!



 吓我一跳(看错了)。。。我以为你要报复我呢。。。。。。。。。。汗。。。。。。。。。 --------------------编程问答--------------------
引用 27 楼  的回复:
引用 26 楼 的回复:

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_……

引用 30 楼  的回复:
引用 28 楼 的回复:

好 我去试试 谢谢 你会有福报的哦!



 吓我一跳(看错了)。。。我以为你要报复我呢。。。。。。。。。。汗。。。。。。。。。


真想吐你一脸  --------------------编程问答--------------------
引用 31 楼  的回复:
引用 27 楼  的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id = Convert.ToInt16(Request.QueryString["ArticleID"]);
JobLo……



日。。。。我怎么   招惹你了。。。。。。。。。。。 --------------------编程问答-------------------- 1。 模糊查询 (Sql: in)
  2。从大到小排序 (sql:DESC)
  3。取前10条 (sql: TOP 10)

很条理嘛 --------------------编程问答--------------------
引用 32 楼  的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id = Convert.ToInt16(Request.QueryString["Articl……

你太无耻了 调戏MM  比你头像还无耻  --------------------编程问答--------------------
引用 32 楼  的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id = Convert.ToInt16(Request.QueryString["Articl……

就是想水一下 不说 偏楼好多了  会被删楼的  --------------------编程问答--------------------
引用 26 楼  的回复:
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 ……



你这个有语法错误呢·········偶吧·········
晕掉了············
你能编译再给我吗··· --------------------编程问答-------------------- 现在编译通过了···但是语句运行报错····
看不懂你的逻辑是什么···
反正错了就是了························
坐等正解啊  我要哭了! --------------------编程问答-------------------- 是不是SQL语句错了 --------------------编程问答--------------------
引用 34 楼  的回复:
引用 32 楼  的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id = Convert.ToInt16(Request.Que……



汗。。。那叫淘宝体。。。怎么到你眼里成调戏小MM了。。。。。思想龌龊。。拉出去。。打。。 --------------------编程问答--------------------
引用 39 楼  的回复:
引用 34 楼 的回复:

引用 32 楼 的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id = Convert.ToInt……

你代码 语法好像有错误
--------------------编程问答-------------------- 可以了·······少了个and·····
偶吧好厉害!!! --------------------编程问答-------------------- 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();
  }
 
这样应该可以 --------------------编程问答-------------------- 复制来的代码乱跑  --------------------编程问答--------------------
引用 39 楼  的回复:
引用 34 楼 的回复:

引用 32 楼 的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id = Convert.ToInt……

屁 你那哪是淘宝体啊  亲是打招呼 你“亲亲”就不是打招呼了    --------------------编程问答--------------------
引用 36 楼  的回复:
引用 26 楼  的回复:
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_……



我错了~~~ 少给你写了个 ADN  。。。。。


实际原理很简单。。。。。(就是拼一个sql语句) 如果还有什么问题。。你可以在 

this.Repeater1.DataSource = bll_pub.GetQuery(sql + " order by ID desc").Tables[0];
 这一行打个断点。。看最后生成的 sql 语句是什么,直接放 SQL SERVER 里面运行一下。。就很明显了 --------------------编程问答--------------------
引用 44 楼  的回复:
引用 39 楼 的回复:
引用 34 楼 的回复:

引用 32 楼 的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Class();
int id =……




哈哈  说得是啊   我能笑一下吗! --------------------编程问答--------------------
引用 46 楼  的回复:
引用 44 楼  的回复:
引用 39 楼 的回复:
引用 34 楼 的回复:

引用 32 楼 的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_Job.BLL.Pub_Cl……



这样啊~~~ 我整天看淘宝的客服在那 亲啊,亲的。。。。

     原来 亲一下和亲两下是不一样的啊!。。out了。。。。 --------------------编程问答--------------------
引用 47 楼  的回复:
引用 46 楼 的回复:

引用 44 楼 的回复:
引用 39 楼 的回复:
引用 34 楼 的回复:

引用 32 楼 的回复:
引用 31 楼 的回复:

引用 27 楼 的回复:
引用 26 楼 的回复:

public void Repeater1Bind()
{
JobLord_Job.BLL.Pub_Class bll_pub = new JobLord_……

--------------------编程问答--------------------
引用 37 楼  的回复:
现在编译通过了···但是语句运行报错····
看不懂你的逻辑是什么···
反正错了就是了························
坐等正解啊  我要哭了!


--------------------编程问答-------------------- select * from (select * ,row_number()over(order by id desc) 序号
from RL_Article where  KeyWords  like '%aaaa%')
where 序号<=10 --------------------编程问答--------------------
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();
  }
--------------------编程问答-------------------- 瞬间觉得有种到了百度贴吧的感脚 --------------------编程问答--------------------  刚看到标题,在想,不就一简单的分页么。。。。。。然后帖子的内容很好。很强大。路过,围观!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,