sharepoint列表如何进行随机取记录?由于itemid是不连续。可能存在删除添加等操作导致

我们可以采用随机取第几条记录。把记录集合取出来。产生随机第几条数。这里关键是如何产生不重复的随机数

方法如下:

#region//获取随机数
        /// <summary>
        /// 获取随机数
        /// </summary>
        /// <param name="Number">随机个数</param>
        /// <param name="minNum">随机的最小数</param>
        /// <param name="maxNum">随机的最大数</param>
        /// <returns></returns>
        public static int[] GetRandomArray(int Number, int minNum, int maxNum)
        {
            int j;
            int[] b = new int[Number];
            Random r = new Random();
            for (j = 0; j < Number; j++)
            {
                int i = r.Next(minNum, maxNum + 1);
                int num = 0;
                for (int k = 0; k < j; k++)
                {
                    if (b[k] == i)
                    {
                        num = num + 1;
                    }
                }
                if (num == 0)
                {
                    b[j] = i;
                }
                else
                {
                    j = j - 1;
                }
            }
            return b;
        }
        #endregion

 

 

  //得到最大数
                    int maxRandom = list.Items.Count;
                    //最小1
                    int minRandom = 1;
                    //得到随机数组
                    int[] randArr = GetRandomArray(topNumber, minRandom, maxRandom);
                    //读取
                    SPQuery query = new SPQuery();
//过滤后的记录
                    SPListItemCollection listItemCollection = list.GetItems(query);
                    #region//如果有记录
                    if (listItemCollection !=null && listItemCollection.Count>0)
                    {
                        //foreach
                        //计数器
                        int i = 1;
                        //得到记录计数器
                        int j = 0;
                        foreach(SPListItem randItem in listItemCollection)
                        {
                            #region//若计数器在随机数组里头,如果存在
                            if (((IList)randArr).Contains(i))
                            {
                                //取记录
                                //******************读取id,工号,姓名,图片url,
                                EmployeeEntity randentity = new EmployeeEntity();
                                //
                                randentity.ItemID = randItem["ID"] == null ? string.Empty :
                                    randItem["ID"].ToString();
                                //工号
                                randentity.EmployeeNO = randItem["EmployeeNO"] == null ? string.Empty :
                                  randItem["EmployeeNO"].ToString();
                                //姓名
                                randentity.EmployeeName = randItem["EmployeeName"] == null ? string.Empty :
                                  randItem["EmployeeName"].ToString();
                                //*****************图片url
                                //
                                result.Add(randentity);
                                //计数器+1
                                j++;
                            }
                            //如果已经获取50张,则退出循环
                            if(j == topNumber)
                            {
                                break;
                            }
                            //计数器+1
                            i++;
                            #endregion
                        }
                    }
                    #endregion

sharepoint列表如何进行随机取几条记录?的更多相关文章

  1. 【转】oracle 中随机取一条记录的两种方法

    oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...

  2. Oracle数据库随机取某条记录的一个字段值

    思路: 先将取出的值随机排序,然后在随机排序的每次取第一条的结果 举例如下: select * from(select t.code fromTBIZOPS_PROVINCE  t ORDER BY ...

  3. 数据库随机取n条记录

    SQL Server SELECT TOP N  *  FROM  表名  ORDER BY  NEWID() My SQL  SELECT  *  FROM  表名 ORDER BY RAND() ...

  4. mysql随机取一条记录

    function getTodayLook($limit) { $sql = "select * from `tvhome_movie_today` order by rand() limi ...

  5. 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

    从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...

  6. 从数组中随机取n条不重复的数据

    工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 ...

  7. Mysql 多表数据拼接插入及子查询结果集随机取一条

    最近遇到一个测试数据的需求,需要往一个表中插入4个来源的数据. 往orders 表中插入 来自 sql_person cm_user_car_model cm_sp_product_new 部分固定数 ...

  8. mysql使用——sql实现随机取一条数据

    最近在做接口测试的时候,测试数据是从数据库查询的,但是当需要并发多次去调用接口时,如果sql只是单纯的进行了limit取值,那并发的时候肯定会每条数据都一样. 因此,研究了下sql随机取一条数据的写法 ...

  9. SQL语句:随机取3条不重复的记录

    随机取3条不重复的记录 [Access]select top 3 * from tablename order by rnd(id); [SqlServer]select top 3 * from t ...

随机推荐

  1. 12个新潮的 HTML5 & CSS3 网站设计欣赏

    响应式设计和基于 HTML5 & CSS3 编码的网站是为网站制作的理想解决方案. HTML5 & CSS3 制作出来的网站结构良好,有很多惊人的效果,并能够在任何设备上浏览. 今天, ...

  2. 十款让 Web 前端开发人员更轻松的实用工具

    这篇文章介绍十款让 Web 前端开发人员生活更轻松的实用工具.每个 Web 开发人员都有自己的工具箱,这样工作中碰到的每个问题都有一个好的解决方案供选择. 对于每一项工作,开发人员需要特定的辅助工具, ...

  3. java反射实现动态代理

    参考:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html http://my.oschina.net/lyp3314/b ...

  4. 四、BLE(中)

    1.1       GATT Manager GATT MGR模块管理所有的GATT服务,同时也是连接GATT模块与GATT ServiceS模块的桥梁. 1.1.1    主要功能模块 先来看一张该 ...

  5. Ionic2学习笔记(1):新建一个页面

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5532323.html                 新建一个页面: 借上一篇中的HelloWorl ...

  6. C++ - 虚基类、虚函数与纯虚函数

    虚基类       在说明其作用前先看一段代码 class A{public:    int iValue;}; class B:public A{public:    void bPrintf(){ ...

  7. URL,URI和URN的理解

    我想很多人和我一样弄不清楚URI和URL之间的区别,有人可能觉得这是统一概念的不同表述而已. 我们先看看定义: URI:Uniform Resource Identifier,即统一资源标志符,用来唯 ...

  8. 解决IIS7.0服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题

    为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的 ...

  9. QT TableWidget 应用笔记

    QT TableWidget应用笔记 分类: QT2013-05-21 16:22 2561人阅读 评论(0) 收藏 举报 1.设置表头及大小 QStringList header; header&l ...

  10. c#中高效的excel导入sqlserver的方法

    将oledb读取的excel数据快速插入的sqlserver中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.S ...