本文实例讲述了C#将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 telorder.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; }
将一个DataTable转换成一个List
首先定义一个接收DataTable字段列的类 。类的字段与DataTable的列字段一致
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebApplication1 { /// <summary> /// 用户信息 /// </summary> public class User { public int Id { get; set; } public string UserName { get; set; } public int Age { get; set; } public int Gender { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using JSON.Controllers; using System.Data; namespace WebApplication1 { public class Class1 { /// <summary> /// 将DataTable转换成一个list /// </summary> /// <returns>返回一个List<User>对象</returns> public List<User> TableToList() { string sql = "select * from T_User"; //T_User表里总共有 id,UserName,Age,Gender四列 DataTable dt= SqlHelper.ExecuteDataTable(sql,null); var list = new List<User>(); //创建一个List<User>的实例 if (dt != null && dt.Rows.Count > 0) { //AsEnumerable():返回一个IEnumerable<T> 对象,其泛型参数 T 为 System.Data.DataRow。 list = (from p in dt.AsEnumerable() select new User //new一个User对象 { Id = p.Field<int>("id"),//p.Filed<int>("id") 其实就是获取DataRow中ID列。即:row["ID"] 然后将它赋值给User类的Id字段。 UserName = p.Field<string>("UserName"), Age = p.Field<int>("Age"), Gender = p.Field<int>("Gender") }).ToList(); //将这个User类对象转换成list } int dataCount = list.Count; // 总的数据条数。 int pageSize=10;//每页显示多少条数据。 int pageCount; //总页数。 int currentPage=3;//当前页。--这里假设当前页为第3页。 pageCount = dataCount % pageSize == 0 ? (dataCount < pageSize ? (dataCount==0?0:1): (dataCount / pageSize)) : (dataCount / pageSize + 1);//这个list 就是取到10条数据 //Skip跳过序列中指定数量的元素,然后返回剩余的元素。 //Take序列的开头返回指定数量的连续元素。 list = list.Skip(pageSize * (currentPage - 1)).Take(pageSize).ToList(); //假设当前页为第3页。这么这里就是跳过 10*(3-1) 即跳过20条数据,Take(pageSize)的意思是:取10条数据,既然前面已经跳过前20条数据了,那么这里就是从21条开始,取10条咯 return list; } } }
希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#中将DataTable转化成List 的方法解析,包括了C#中将DataTable转化成List 的方法解析的使用技巧和注意事项,需要的朋友参考一下 前言 通常在DAL层我们都需要把DataTable转换为List<T>让调用者尽可能的好用,尽量的不用关心数据库的字段等,所以我们一般传过去的都是List<T>而不是DataTable。 泛型的好处: 它为使用c#语言编写面向对象程
本文向大家介绍C#中将DataTable转换成CSV文件的方法,包括了C#中将DataTable转换成CSV文件的方法的使用技巧和注意事项,需要的朋友参考一下 DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一
本文向大家介绍C#实现将PPT转换成HTML的方法,包括了C#实现将PPT转换成HTML的方法的使用技巧和注意事项,需要的朋友参考一下 本文是一个C#的小程序,主要实现将ppt转换成html的功能,方法很多,此处与大家分享一下,希望能对大家的项目开发起到一定的借鉴作用。 主要功能代码如下: 以上程序是使用C# 先创建一个ppt 文件并向里面写入了文字,然后再把此ppt 转换成html ,对于上面
本文向大家介绍C#中DataTable 转换为 Json的方法汇总(三种方法),包括了C#中DataTable 转换为 Json的方法汇总(三种方法)的使用技巧和注意事项,需要的朋友参考一下 在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>、DataTable转换为Json格式。特别在使用Extjs框架的时候,Ajax异步请求的数据
我是C#新手,我正在使用specflow 我正在自动化一个场景,其中需要检查多个元素,如果它们是启用的。这些元素来自页面的不同部分,具有不同的XPath。 我想的方法是 页面类: 我得到以下错误
本文向大家介绍C#中List和数组之间转换的方法,包括了C#中List和数组之间转换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中List和数组之间转换的方法。分享给大家供大家参考。具体分析如下: 一、List转数组 (从List<string>转到string[]) 二、数组转List (从string[]转到List<string>) 希望本文所述对大家的C#程序设计有所