将DataTable转换成list 及数据分页:

/// <summary>
/// 酒店评论列表-分页
/// </summary>
/// <param name="userId"></param>
/// <param name="pageIndex">当前页</param>
/// <param name="pageCount">总页数</param>
/// <returns></returns>
public static List<CommentInfo> GetHotelCommentList(int userId, int pageIndex, out int pageCount)
{
var list = new List<CommentInfo>();
pageCount = 0;
try
{
//查询酒店ID,名字,图片,用户ID,用户评论
string sql = string.Format( @"select hotels.hid,hotels.hotelName,hotels.images,hotelorder.UserID,user_HotelComment.comment from hotels with(nolock) join hotelorder with(nolock) join user_HotelComment
on hotelorder.UserID=user_HotelComment.userID on hotels.hid=hotelorder.HotelID where hotelorder.UserID={0}", userId);
DataTable dt = SQLHelper.Get_DataTable(sql, SQLHelper.GetCon(), null); if (dt != null && dt.Rows.Count > 0)
{ list = (from p in dt.AsEnumerable() //这个list是查出全部的用户评论
select new CommentInfo
{
Id = p.Field<int>("hid"), //p.Filed<int>("Id") 其实就是获取DataRow中ID列。即:row["ID"]
HotelImages = p.Field<string>("images"),
HotelName = p.Field<string>("hotelName"),
Comment = p.Field<string>("comment")
}).ToList(); //将这个集合转换成list int pageSize = 10; //每页显示十条数据 //获取总页数
pageCount = list.Count % pageSize == 0 ? ((list.Count - pageSize >= 0 ? (list.Count / pageSize) :(list.Count == 0 ? 0 : 1))) : list.Count / pageSize + 1; //这个list 就是取到10条数据
//Skip跳过序列中指定数量的元素,然后返回剩余的元素。
//Take序列的开头返回指定数量的连续元素。
list = list.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList(); //假设当前页为第三页。这么这里就是跳过 10*(3-1) 即跳过20条数据,Take(pageSize)的意思是:取10条数据,既然前面已经跳过前20条数据了,那么这里就是从21条开始,取10条咯 } }
catch (Exception ex)
{
// write log here
}
return list; }

 C# AsEnumerable  找不到 ??    添加引用 System.Data.DataSetExtensions

DataTable dt = new DataTable();
var test = dt.AsEnumerable();
 
//跳过dt的前200行,取后100行  即取得200-300行
test.Skip(200).Take(100);


dt = dt.AsEnumerable().Take(N).CopyToDataTable<DataRow>();

C# 将DataTable转换成list (--分页--) 【Skip--Take】的更多相关文章

  1. C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary>   /// 酒店评论列表-分页  /// </su ...

  2. DataTable 转换成 Json的3种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...

  3. DataTable转换成IList<T>的简单实现

    DataTable的无奈 很多时候,我们需要去操作DataTable.但DataTable的操作,实在是太不方便了.Linq?lambda表达式?统统没有... 特别是对现有结果集做进一步筛选,这样的 ...

  4. asp.net dataTable转换成Json格式

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...

  5. 将DataTable转换成CSV文件

    DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...

  6. 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)

    public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...

  7. DataTable转换成List<T>

    很多时候需要将DataTable转换成一组model,直接对model执行操作会更加方便直观. 代码如下: public static class DataTableToModel { public ...

  8. 将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据

    领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其 ...

  9. 简单的反射 把datatable 转换成list对象

    /// <summary> /// 把datatable 转换成list对象 /// </summary> /// <typeparam name="T&quo ...

随机推荐

  1. IIC_slaver 仿真错误

    integer 类型不能直接赋值. 改正之后的代码

  2. makefile笔记4 - makefile命令

    每条规则中的命令和操作系统 Shell 的命令行是一致的. make 会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的. 在命令行之间中的空 ...

  3. 北大poj- 1009

    Edge Detection Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22835   Accepted: 5398 D ...

  4. sdn-准备-虚拟机迁移-vxlan

    知识基础: 虚拟机到虚拟机的迁移(Virtual-to-Virtual) V2V 迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件.虚拟机从一个物理机上的 VMM 迁移到另 ...

  5. 继承 in her it

    ''' in her it 继承 de rive 派生 python2 (经典类|新式类) python3 (新式类) 1. What is inheritance? 什么是继承? 继承是一种新建类的 ...

  6. 服务器搭建lamp环境

    使用的例子:服务器版本内核centos 7.04     Xshell连接到您的服务器上,使系统处于最新状态执行以下命令, yum update -y     利用yum命令安装Apache执行命令, ...

  7. MS SQL 全局临时表的删除

    本来已经搜索到怎么删除了 如下: IF OBJECT_ID( 'tempdb..##TEMP_COPTD') IS NOT NULL Begin DROP TABLE ##TEMP_COPTD End ...

  8. windows 64位mysql5.7安装

    一.安装mysql 1.下载mysql-5.7.15-winx64.zip http://dev.mysql.com/downloads/mysql/ 2.解压缩到D:\ProgramFiles 3. ...

  9. shell截取指定字符串之间的内容

    #!/bin/bash#截取字符串 #path=ss/usr/share/src/root/home/admin path=ss/usr/share/src/root/home/admin/src/a ...

  10. 使用VMware Workstation 14 Player或者Oracle VM VirtualBox安装Fedora-Workstation-netinst-x86_64-27-1.6操作系统的相关记录

    无论是在使用哪个(VMware或者Oracle VM)都遇到了一个问题:即使在安装完Fedoras操作系统之后,进行Reboot还是会进入之前一摸一样的安装界面,相当于再次安装.然而最最有效的解决办法 ...