最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#將DataTable轉(zhuǎn)換成list的方法

 更新時(shí)間:2015年01月21日 14:43:04   投稿:shichen2014  
這篇文章主要介紹了C#將DataTable轉(zhuǎn)換成list的方法,實(shí)例分析了DataTable轉(zhuǎn)換成list及數(shù)據(jù)分頁的技巧,需要的朋友可以參考下

本文實(shí)例講述了C#將DataTable轉(zhuǎn)換成list及數(shù)據(jù)分頁的方法。分享給大家供大家參考。具體如下:

復(fù)制代碼 代碼如下:
/// <summary> 
 /// 酒店評(píng)論列表-分頁 
/// </summary> 
/// <param name="userId"></param> 
/// <param name="pageIndex">當(dāng)前頁</param> 
/// <param name="pageCount">總頁數(shù)</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,用戶評(píng)論 
         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()  //這個(gè)list是查出全部的用戶評(píng)論 
                     select new CommentInfo 
                     { 
                         Id = p.Field<int>("hid"), //p.Filed<int>("Id") 其實(shí)就是獲取DataRow中ID列。即:row["ID"] 
                         HotelImages = p.Field<string>("images"), 
                         HotelName = p.Field<string>("hotelName"), 
                         Comment = p.Field<string>("comment") 
                     }).ToList(); //將這個(gè)集合轉(zhuǎn)換成list 
             int pageSize = 10; //每頁顯示十條數(shù)據(jù) 
 
             //獲取總頁數(shù) 
             pageCount = list.Count % pageSize == 0 ? ((list.Count - pageSize >= 0 ? (list.Count / pageSize) : (list.Count == 0 ? 0 : 1))) : list.Count / pageSize + 1; 
 
             //這個(gè)list 就是取到10條數(shù)據(jù) 
             //Skip跳過序列中指定數(shù)量的元素,然后返回剩余的元素。 
             //Take序列的開頭返回指定數(shù)量的連續(xù)元素。 
             list = list.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList(); //假設(shè)當(dāng)前頁為第三頁。這么這里就是跳過 10*(3-1) 即跳過20條數(shù)據(jù),Take(pageSize)的意思是:取10條數(shù)據(jù),既然前面已經(jīng)跳過前20條數(shù)據(jù)了,那么這里就是從21條開始,取10條咯 
         } 
     } 
     catch (Exception ex) 
     { 
         // write log here 
     } 
     return list; 
}

將一個(gè)DataTable轉(zhuǎn)換成一個(gè)List
首先定義一個(gè)接收DataTable字段列的類 。類的字段與DataTable的列字段一致

復(fù)制代碼 代碼如下:
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; } 
    } 
}

復(fù)制代碼 代碼如下:
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轉(zhuǎn)換成一個(gè)list 
        /// </summary> 
        /// <returns>返回一個(gè)List<User>對(duì)象</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>(); //創(chuàng)建一個(gè)List<User>的實(shí)例 
            if (dt != null && dt.Rows.Count > 0) 
            { 
                //AsEnumerable():返回一個(gè)IEnumerable<T> 對(duì)象,其泛型參數(shù) T 為 System.Data.DataRow。 
                list = (from p in dt.AsEnumerable() 
                        select new User  //new一個(gè)User對(duì)象 
                        { 
                            Id = p.Field<int>("id"),//p.Filed<int>("id") 其實(shí)就是獲取DataRow中ID列。即:row["ID"] 然后將它賦值給User類的Id字段。 
                            UserName = p.Field<string>("UserName"), 
                            Age = p.Field<int>("Age"), 
                            Gender = p.Field<int>("Gender") 
                        }).ToList(); //將這個(gè)User類對(duì)象轉(zhuǎn)換成list 
            } 
            int dataCount = list.Count; // 總的數(shù)據(jù)條數(shù)。 
            int pageSize=10;//每頁顯示多少條數(shù)據(jù)。             
            int pageCount; //總頁數(shù)。 
            int currentPage=3;//當(dāng)前頁。--這里假設(shè)當(dāng)前頁為第3頁。 
            pageCount = dataCount % pageSize == 0 ? (dataCount < pageSize ? (dataCount==0?0:1): (dataCount / pageSize)) : (dataCount / pageSize + 1); 

     //這個(gè)list 就是取到10條數(shù)據(jù)   
            //Skip跳過序列中指定數(shù)量的元素,然后返回剩余的元素。   
            //Take序列的開頭返回指定數(shù)量的連續(xù)元素。   
            list = list.Skip(pageSize * (currentPage - 1)).Take(pageSize).ToList(); //假設(shè)當(dāng)前頁為第3頁。這么這里就是跳過 10*(3-1) 即跳過20條數(shù)據(jù),Take(pageSize)的意思是:取10條數(shù)據(jù),既然前面已經(jīng)跳過前20條數(shù)據(jù)了,那么這里就是從21條開始,取10條咯   
            return list;  
        }         
    } 
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#實(shí)現(xiàn)自定義圓角按鈕的方法

    C#實(shí)現(xiàn)自定義圓角按鈕的方法

    Winform中自帶的button沒有圓角屬性,所以我們繼承Button類,重寫OnPaint事件來繪制圓角按鈕。下面通過實(shí)例代碼給大家介紹下C#實(shí)現(xiàn)自定義圓角按鈕的方法,需要的朋友參考下吧
    2021-11-11
  • 使用C#實(shí)現(xiàn)生成一個(gè)綠色文件

    使用C#實(shí)現(xiàn)生成一個(gè)綠色文件

    這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)生成一個(gè)綠色文件,可以免去安裝的繁瑣過程,直接運(yùn)行,非常方便,有需要的小伙伴可以參考一下
    2024-04-04
  • C# 使用AE獲取feature的屬性及字段操作

    C# 使用AE獲取feature的屬性及字段操作

    這篇文章主要介紹了C# 使用AE獲取feature的屬性及字段操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#生成餅形圖及添加文字說明實(shí)例代碼

    C#生成餅形圖及添加文字說明實(shí)例代碼

    這篇文章主要介紹了C#生成餅形圖及添加文字說明的方法,非常實(shí)用的功能,需要的朋友可以參考下
    2014-07-07
  • C#檢查Windows是否安裝了某個(gè)服務(wù)的方法

    C#檢查Windows是否安裝了某個(gè)服務(wù)的方法

    這篇文章主要介紹了C#檢查Windows是否安裝了某個(gè)服務(wù)的方法,涉及C#操作windows系統(tǒng)服務(wù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 一文帶你了解 C# DLR 的世界(DLR 探秘)

    一文帶你了解 C# DLR 的世界(DLR 探秘)

    DLR 是 C#4.0 新引進(jìn)來的概念,其主要目的就是為了動(dòng)態(tài)綁定與交互。下面小編給大家?guī)硪黄诲e(cuò)教程,一文帶你了解 C# DLR 的世界,需要的朋友可以參考下
    2020-02-02
  • 解析C#設(shè)計(jì)模式編程中外觀模式Facade Pattern的應(yīng)用

    解析C#設(shè)計(jì)模式編程中外觀模式Facade Pattern的應(yīng)用

    這篇文章主要介紹了C#設(shè)計(jì)模式編程中外觀模式Facade Pattern的應(yīng)用,外觀模式中分為門面(Facade)和子系統(tǒng)(subsystem)兩個(gè)角色來進(jìn)行實(shí)現(xiàn),需要的朋友可以參考下
    2016-02-02
  • 淺談c#中config.exe 引發(fā)的一些問題

    淺談c#中config.exe 引發(fā)的一些問題

    下面小編就為大家分享一篇淺談c#中config.exe 引發(fā)的一些問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 關(guān)于C#中async/await的用法實(shí)例詳解

    關(guān)于C#中async/await的用法實(shí)例詳解

    這篇文章主要介紹了關(guān)于C#中async/await的用法,今天寫一個(gè)demo徹底搞明白async/await的用法,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • C# 獲取 PC 序列號(hào)的方法示例

    C# 獲取 PC 序列號(hào)的方法示例

    這篇文章主要介紹了C# 獲取 PC 序列號(hào)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論

晴隆县| 柳林县| 德令哈市| 正宁县| 荥阳市| 榆中县| 图们市| 会理县| 新河县| 宁波市| 阿荣旗| 阜新| 武川县| 伊春市| 子洲县| 衡水市| 苏尼特右旗| 宿迁市| 彭水| 鸡泽县| 平果县| 仪陇县| 盘锦市| 德江县| 芜湖县| 孝义市| 宜州市| 禄劝| 温泉县| 明光市| 承德县| 峡江县| 米易县| 科技| 昂仁县| 交城县| 乳山市| 历史| 海安县| 商河县| 广州市|