<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      DataTable轉換成IList(二)

      作者:陳太漢

      DataTable轉換成IList(二)

      DataTable轉換成IList第一版出來之后,昨晚總是覺得有很多地方可以改進,所以今天一大早來就把它給修訂了,當然還有一些地方可以改進,等我以后編碼能力提高之后再出第三版吧,第二版應該夠用

       

      using System;
      using System.Collections.Generic;
      using System.Reflection;
      using System.Collections;
      using System.Data;

      namespace JSONTest
      {
      public class TableToList<T> where T : new()
      {
      /// <summary>
      /// DataTable轉換成IList
      /// </summary>
      /// <param name="dt"></param>
      /// <returns></returns>
      public IList<T> ToList(DataTable dt)
      {
      if (dt == null || dt.Rows.Count == 0)
      {
      return null;
      }

      PropertyInfo[] properties
      = typeof(T).GetProperties();//獲取實體類型的屬性集合
      IList<string> colNames = GetColumnNames(dt.Columns);//按照屬性順序的列名集合
      List<T> list = new List<T>();
      T model
      = default(T);
      foreach (DataRow dr in dt.Rows)
      {
      model
      = new T();//創建實體
      int i = 0;
      foreach (PropertyInfo p in properties)
      {
      if (p.PropertyType == typeof(string))
      {
      p.SetValue(model, dr[colNames[i
      ++]], null);
      }
      else if (p.PropertyType == typeof(int))
      {
      p.SetValue(model,
      int.Parse(dr[colNames[i++]].ToString()), null);
      }
      else if (p.PropertyType == typeof(bool))
      {
      p.SetValue(model,
      bool.Parse(dr[colNames[i++]].ToString()), null);
      }
      else if (p.PropertyType == typeof(DateTime))
      {
      p.SetValue(model, DateTime.Parse(dr[colNames[i
      ++]].ToString()), null);
      }
      else if (p.PropertyType == typeof(float))
      {
      p.SetValue(model,
      float.Parse(dr[colNames[i++]].ToString()), null);
      }
      else if (p.PropertyType == typeof(double))
      {
      p.SetValue(model,
      double.Parse(dr[colNames[i++]].ToString()), null);
      }
      }

      list.Add(model);
      }

      return list;
      }


      /// <summary>
      /// 按照屬性順序的列名集合
      /// </summary>
      private IList<string> GetColumnNames(DataColumnCollection dcc)
      {
      PropertyInfo[] properties
      = typeof(T).GetProperties();//獲取實體類型的屬性集合

      //由于集合中的元素是確定的,所以可以指定元素的個數,系統就不會分配多余的空間,效率會高點
      IList<string> ilist = new List<string>(dcc.Count);

      foreach (PropertyInfo p in properties)
      {
      foreach (DataColumn dc in dcc)
      {
      if (dc.ColumnName.ToLower().Contains(p.Name.ToLower()))
      {
      ilist.Add(dc.ColumnName);
      }
      }
      }

      return ilist;
      }

      }
      }
      posted @ 2011-05-10 08:48  古文觀芷  閱讀(913)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 亚欧洲乱码视频在线专区| 成人无号精品一区二区三区| 亚洲五月天综合| 色综合视频一区二区三区| 亚洲国产精品成人无码区| 国产精品美女乱子伦高| 亚洲精品无码成人A片九色播放| 国产精品白浆无码流出| 九九热精品免费在线视频| 1000部拍拍拍18勿入免费视频下载| 亚洲欧美精品一中文字幕| bt天堂新版中文在线| 777米奇色狠狠888俺也去乱| 精品国产成人亚洲午夜福利| 国产精品午夜福利在线观看| 青青草一区在线观看视频| 人妻丝袜AV中文系列先锋影音| 亚洲成人精品在线伊人网| 中文无码高潮到痉挛在线视频| 色综合视频一区二区三区| 日韩精品卡1卡2日韩在线| 午夜成人无码免费看网站| 国产呻吟久久久久久久92| 国产亚洲精品久久久久久久久| 久久99精品久久久久久青青| 美女黄网站人色视频免费国产| 国产成人午夜福利精品| 97在线碰| 亚洲精品国产精品乱码不| 国产精品中文字幕视频| 特级做a爰片毛片免费看无码| 久热久热中文字幕综合激情| 久久精品一本到99热免费| 蓬安县| 亚洲国产精品日韩专区av| 欧美乱妇高清无乱码免费| 亚洲av日韩av一区久久| 欧美亚洲精品中文字幕乱码| 大香伊蕉在人线国产最新2005| 久久99精品久久久久麻豆| 国产系列高清精品第一页|