亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現DataTable轉換成IList的方法

2020-01-24 01:14:31
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現DataTable轉換成IList的方法。分享給大家供大家參考,具體如下:

在用C#作開發的時候經常要把DataTable轉換成IList;操作DataTable比較麻煩,把DataTable轉換成IList,以對象實體作為IList的元素,操作起來就非常方便。

注意:實體的屬性必須和數據庫中的字段必須一一對應,或者數據庫字段名.ToLower().Contains(實體屬性名.ToLower())

數據類型暫時至支持int、string、DateTime、float、double

using System;using System.Collections;using System.Collections.Generic;using System.Data;using System.Reflection;namespace TBToListTest{  public class TBToList<T> where T : new()  {    /// <summary>    /// 獲取列名集合    /// </summary>    private IList<string> GetColumnNames(DataColumnCollection dcc)    {      IList<string> list = new List<string>();      foreach (DataColumn dc in dcc)      {        list.Add(dc.ColumnName);      }      return list;    }    /// <summary>    ///屬性名稱和類型名的鍵值對集合    /// </summary>    private Hashtable GetColumnType(DataColumnCollection dcc)    {      if (dcc == null || dcc.Count == 0)      {        return null;      }      IList<string> colNameList = GetColumnNames(dcc);      Type t = typeof(T);      PropertyInfo[] properties = t.GetProperties();      Hashtable hashtable = new Hashtable();      int i = 0;      foreach (PropertyInfo p in properties)      {        foreach (string col in colNameList)        {          if (col.ToLower().Contains(p.Name.ToLower()))          {            hashtable.Add(col, p.PropertyType.ToString() + i++);          }        }      }      return hashtable;    }    /// <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();//獲取實體類型的屬性集合      Hashtable hh = GetColumnType(dt.Columns);//屬性名稱和類型名的鍵值對集合      IList<string> colNames = GetColumnNames(hh);//按照屬性順序的列名集合      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(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(Hashtable hh)    {      PropertyInfo[] properties = typeof(T).GetProperties();//獲取實體類型的屬性集合      IList<string> ilist = new List<string>();      int i = 0;      foreach (PropertyInfo p in properties)      {        ilist.Add(GetKey(p.PropertyType.ToString() + i++, hh));      }      return ilist;    }    /// <summary>    /// 根據Value查找Key    /// </summary>    private string GetKey(string val, Hashtable tb)    {      foreach (DictionaryEntry de in tb)      {        if (de.Value.ToString() == val)        {          return de.Key.ToString();        }      }      return null;    }  }}
namespace TBToListTest{  //實體  public class Person  {    public int ID    {      set;      get;    }    public string Name    {      set;      get;    }    public string Age    {      set;      get;    }    public string Lover    {      set;      get;    }  }}
using System;using System.Data;namespace TBToListTest{  class Program  {    static void Main(string[] args)    {      TBToList<Person> tol = new TBToList<Person>();      Console.WriteLine();      DataTable dt = GetTable();      tol.ToList(dt);      Console.Read();    }    public static DataTable GetTable()    {      DataTable dt = new DataTable();      dt.Columns.Add("ID");      dt.Columns.Add("Age");      dt.Columns.Add("Lover");      dt.Columns.Add("Name");      DataRow dr = dt.NewRow();      dr["ID"] = 1;      dr["Age"] = "Age1";      dr["Lover"] = "Lover1";      dr["Name"] = "Name1";      dt.Rows.Add(dr);      DataRow dr1 = dt.NewRow();      dr1["ID"] = 2;      dr1["Age"] = "Age2";      dr1["Lover"] = "Lover2";      dr1["Name"] = "Name2";      dt.Rows.Add(dr1);      return dt;    }  }}

更多關于C#相關內容感興趣的讀者可查看本站專題:《C#數據結構與算法教程》、《C#常見控件用法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結

希望本文所述對大家C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩成人免费| 亚洲最大福利视频网站| 国外色69视频在线观看| 久久人人爽亚洲精品天堂| 操日韩av在线电影| 精品久久中文字幕久久av| 亚洲成人黄色网址| 国产亚洲精品美女| 亚洲欧美国产日韩中文字幕| 久久99热精品这里久久精品| 亚洲欧美一区二区三区在线| 亚洲激情视频在线| 国产精品第2页| 日韩亚洲欧美成人| 国产伦精品免费视频| 欧美成人午夜影院| 亚洲国产精品嫩草影院久久| 欧美老女人在线视频| 久久综合免费视频| 欧美成人午夜剧场免费观看| 日韩精品黄色网| 久久久久久69| 精品中文字幕视频| 97在线免费观看| 国产精品久久久久久久久久ktv| 成人妇女淫片aaaa视频| 伊人久久精品视频| 欧美精品久久一区二区| 国产精品成人va在线观看| 欧美专区在线视频| 精品成人69xx.xyz| 久久国产精品免费视频| 国产日产亚洲精品| 亚洲专区中文字幕| 中文字幕精品网| 国产精品永久在线| 亚洲国产精品国自产拍av秋霞| 国产免费成人av| 国产亚洲视频中文字幕视频| 欧美激情第1页| 国产日产欧美a一级在线| 精品女厕一区二区三区| 欧美激情xxxxx| 一区二区三区视频免费在线观看| 91精品国产高清久久久久久91| 亚洲精品在线91| 中文字幕在线看视频国产欧美在线看完整| 日韩成人激情影院| xxxx性欧美| 中文字幕日韩视频| 国产aⅴ夜夜欢一区二区三区| 国产精品视频网| 欧美性猛交xxxx乱大交蜜桃| 国产精品99久久99久久久二8| 国产久一一精品| 欧美日韩精品二区| 久久久视频精品| 国产视频一区在线| 日韩成人在线免费观看| 国产成人精品免高潮在线观看| 粗暴蹂躏中文一区二区三区| 国产第一区电影| 在线亚洲欧美视频| 亚洲一区二区久久久| 亚洲在线免费看| 韩国视频理论视频久久| 国产精品白嫩美女在线观看| 国产福利视频一区| 国产福利视频一区二区| 亚洲夜晚福利在线观看| 亚洲小视频在线观看| 伦伦影院午夜日韩欧美限制| 国产aⅴ夜夜欢一区二区三区| 久久视频在线直播| 91色中文字幕| 91久久国产综合久久91精品网站| 亚洲性猛交xxxxwww| 亚洲天堂av在线免费| 日韩中文字幕网| 欧美成人精品三级在线观看| 91国产一区在线| 成人福利免费观看| 成人黄色在线免费| 日韩小视频网址| 国产精品入口尤物| 国产精品电影观看| 国产精品美女免费视频| 国产99久久精品一区二区| 欧美在线一区二区视频| 日韩免费av片在线观看| 日韩精品一二三四区| 国产亚洲成av人片在线观看桃| 中文在线资源观看视频网站免费不卡| 欧美国产日韩免费| 黄色成人在线播放| 色偷偷888欧美精品久久久| 久久中文字幕在线| 91最新国产视频| 一本色道久久88综合日韩精品| 5566日本婷婷色中文字幕97| 日韩高清电影好看的电视剧电影| 亚洲成人av资源网| 免费99精品国产自在在线| 蜜臀久久99精品久久久无需会员| 欧美国产精品va在线观看| 亚洲午夜女主播在线直播| 日韩av中文字幕在线播放| 久久在精品线影院精品国产| 性夜试看影院91社区| 国产精品91久久久| 777777777亚洲妇女| 国产成人97精品免费看片| 中文字幕亚洲二区| 国产精品电影观看| 欧美色播在线播放| 亚洲韩国欧洲国产日产av| 亚洲电影天堂av| 日韩毛片中文字幕| 国产精品旅馆在线| 91免费版网站入口| 亚洲视频在线视频| 亚洲欧美在线免费| 中文字幕亚洲一区在线观看| 成人在线激情视频| 国产精品成熟老女人| 国产成人精品免高潮在线观看| 国产福利视频一区| 久久午夜a级毛片| 日韩欧美在线视频日韩欧美在线视频| 国产欧美日韩精品丝袜高跟鞋| 国产日本欧美一区| 日韩中文字幕亚洲| 欧美精品电影免费在线观看| 国产精品久久久久77777| 欧美日韩国产综合视频在线观看中文| 亚洲国产日韩欧美在线动漫| 国产精品综合不卡av| 岛国视频午夜一区免费在线观看| 在线视频日韩精品| 欧美一二三视频| 欧美成人午夜激情在线| 亚洲一区二区福利| 久久久亚洲网站| 成人免费观看49www在线观看| 欧美激情区在线播放| 国产欧美精品一区二区三区介绍| 91精品国产91久久久久久久久| 午夜精品久久久久久久99热浪潮| 欧美激情免费在线| 久久国产加勒比精品无码| 欧美日韩999| 91免费欧美精品| 精品福利在线看| 日韩av电影国产| 91免费在线视频网站| 人人爽久久涩噜噜噜网站| 国产综合视频在线观看| 久久激情视频免费观看| 夜夜嗨av一区二区三区四区| 国产日韩精品入口| 亚洲黄色免费三级| 日韩亚洲国产中文字幕| 亚洲精品国偷自产在线99热| 亚洲国产女人aaa毛片在线|