asp.net获取数据随机显示(原创)

  大家每天玩微博的时候,微博广播内容上面有一项"可能认识的人",每次刷新页面的时候,那里面的数据都会随机的变化,今天就与大家分享下我写一个通用对于从数据库里调用的数据随机显示的算法,主要是mark一下。呵呵...

  直接贴代码。

            Random random = new Random();
            DataTable dt = new DataTable();
            StringBuilder sb = new StringBuilder();
            //int count = dt.Rows.Count;
            int count = 20;//最大索引 记录条数
            int times = 2;//记录循环次数
            if (count <= 6)//假设我要取6条数据
            {
                for (int i = 0; i < count; i++)
                {
                    sb.Append("" + i.ToString() + ",");//需要拼接的字符串
                }
            }
            else
            {
                string strindex = "";//用来比较不重复字符串
                int n = 0;//循环计数
                int islast = 0;//最后一次索引值                
                for (int i = 0; i < times; i++)//循环的次数如何来控制
                {
                    int index = random.Next(0, count);
                    if (i == 0)
                    {
                        n++;
                        strindex += index.ToString() + ",";
                        sb.Append(index.ToString() + ",");//需要拼接的字符串
                        islast = index;
                    }
                    else
                    {
                        if (islast != index)
                        {
                            string[] strlast = strindex.Split(',');
                            int m = 0;
                            for (int j = 0; j < strlast.Length - 1; j++)//防止重复
                            {
                                if (Convert.ToInt16(strlast[j]) == index)
                                {
                                    m++;
                                    break;
                                }
                            }
                            if (m == 0)
                            {
                                n++;
                                strindex += index.ToString() + ",";
                                sb.Append(index.ToString() + ",");//需要拼接的字符串
                                islast = index;
                            }
                        }
                    }
                    if (n == 5)
                    {
                        break;
                    }
                    times++;
                }
            }
            //看看结果
            ClientScript.RegisterStartupScript(typeof(Page), "", "alert('" + sb.ToString() + "times:" + times + "')", true);

  PS:Tandy Tang祝大家写代码写的愉快!

posted @ 2012-11-16 13:28  大神神风  阅读(637)  评论(0编辑  收藏  举报