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

首頁 > 編程 > C# > 正文

C#中把任意類型的泛型集合轉換成SQLXML數據格式的實例

2020-01-24 00:53:24
字體:
來源:轉載
供稿:網友

話不多說,跟著小編一起來看下吧

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlTypes;using System.Data;using System.Reflection;using System.IO;using System.Xml;namespace CollectionToXml{ class Program {  static void Main(string[] args)  {   //persons可替換為任何泛型集合   var persons = new[] {     new Person("李元芳", 23) ,     new Person("狄仁杰", 32)    };   SqlXml sqlXml = GenericConver.CollectionToSqlXml(persons);   Console.WriteLine(sqlXml.Value);  }  /// <summary>  /// 泛型轉換類  /// </summary>  static class GenericConver  {   /// <summary>   /// 集合轉換成SQLXML   /// </summary>   /// <typeparam name="T">泛型參數(集合成員的類型)</typeparam>   /// <param name="TCollection">泛型集合</param>   /// <returns></returns>   public static SqlXml CollectionToSqlXml<T>(IEnumerable<T> TCollection)   {    //先把集合轉換成數據表,然后把數據表轉換成SQLXML    return DataTableToSqlXml(CollectionToDataTable(TCollection));   }   /// <summary>   /// 集合轉換成數據表   /// </summary>   /// <typeparam name="T">泛型參數(集合成員的類型)</typeparam>   /// <param name="TCollection">泛型集合</param>   /// <returns></returns>   public static DataTable CollectionToDataTable<T>(IEnumerable<T> TCollection)   {    //獲取泛型的具體類型    Type type = typeof(T);    //獲取類型的公共屬性    PropertyInfo[] properties = type.GetProperties();    //創建數據表,表名為類型名稱    DataTable table = new DataTable(type.Name);    //把公共屬性轉行成表格列,再把表格列添加到表格中    foreach (var property in properties)    {     //創建一個表格列,列名為屬性名,列數據類型為屬性的類型     DataColumn column = new DataColumn(property.Name, property.PropertyType);     //把表格列添加到表格中     table.Columns.Add(column);    }    //把泛型集合元素添加到數據行中    foreach (var item in TCollection)    {     //創建和表格行架構相同的表格行     DataRow row = table.NewRow();     //讀取元素所有屬性列的值,并根據屬性名稱,把屬性值添加到表格行中     foreach (var property in properties)      row[property.Name] = property.GetValue(item, null);     //把表格行添加到表格中     table.Rows.Add(row);    }    return table;   }   /// <summary>   /// 數據表轉換成SQLXML   /// </summary>   /// <param name="table">數據表</param>   /// <returns></returns>   public static SqlXml DataTableToSqlXml(DataTable table)   {    SqlXml xml;    //如果表格名為空,則設置表格名    if (string.IsNullOrEmpty(table.TableName))     table.TableName = "TableName";    //把數據表轉換成XML    using (var ms = new MemoryStream())    {     //把數據表轉換成XML格式,并寫入內存流     table.WriteXml(ms);     //把內存流讀取標記設置回起點     ms.Position = 0;     //使用XmlReader讀取內存流,并創建一個SqlXml對象     xml = new SqlXml(XmlReader.Create(ms));    }    return xml;   }  }  /// <summary>  /// 人類(測試數據類)  /// </summary>  class Person  {   /// <summary>   /// 構造函數   /// </summary>   /// <param name="name">名稱</param>   /// <param name="age">年齡</param>   public Person(string name, int age)   { Name = name; Age = age; }   /// <summary>   /// 名稱   /// </summary>   public string Name { get; set; }   /// <summary>   /// 年齡   /// </summary>   public int Age { get; set; }  } }}

輸出結果:

<DocumentElement> <Person> <Name>李元芳</Name> <Age>23</Age> </Person> <Person> <Name>狄仁杰</Name> <Age>32</Age> </Person></DocumentElement>

主要是通過反射,讀取泛型類型的屬性,然后根據讀取到的屬性生成數據表,再把數據表轉換成XML格式。

注釋已經寫得很詳盡了,我也不知道還需要說明點什么,如果這個小例子能幫到誰的小忙就最好不過了哈~

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩国精品美女www爽爽爽视频| 尤物九九久久国产精品的特点| 精品无码久久久久久国产| 久久成人免费视频| 国内精品久久久久久久| 精品国产乱码久久久久酒店| 77777少妇光屁股久久一区| 日av在线播放中文不卡| 久久精品视频导航| 欧美国产日产韩国视频| 国产精品国产亚洲伊人久久| 久久最新资源网| 懂色aⅴ精品一区二区三区蜜月| 中文字幕视频一区二区在线有码| 韩国精品久久久999| 福利二区91精品bt7086| 欧美视频国产精品| 亚洲男女性事视频| 亚洲aⅴ男人的天堂在线观看| 欧美大成色www永久网站婷| 亚洲免费视频一区二区| 成人免费大片黄在线播放| 精品在线观看国产| 美女性感视频久久久| 国产精品久久久久国产a级| 欧美日韩一区二区精品| 国产欧美婷婷中文| 欧美日韩福利在线观看| 国产精品嫩草影院一区二区| 亚洲欧洲视频在线| 久久久久亚洲精品国产| 欧美成人免费在线视频| 成人久久精品视频| www.亚洲天堂| 一本色道久久综合亚洲精品小说| 欧美另类69精品久久久久9999| 久久天堂电影网| 亚洲视频自拍偷拍| 日韩一级裸体免费视频| 91精品一区二区| 国产成人精品日本亚洲专区61| 亚洲无限乱码一二三四麻| 原创国产精品91| 成人亚洲欧美一区二区三区| 欧美一区二区三区精品电影| 国产精品在线看| 国产一区二区三区在线观看视频| 欧美色道久久88综合亚洲精品| 国产91成人video| 奇米一区二区三区四区久久| y97精品国产97久久久久久| 国产精品久久久久高潮| 国产精品成人观看视频国产奇米| 色婷婷综合久久久久| 欧美日韩中文字幕综合视频| 国产精品流白浆视频| 久久久国产精品视频| 欧美另类99xxxxx| 亚洲一区二区久久久久久久| 欧美黑人狂野猛交老妇| 欧洲美女7788成人免费视频| 2019中文字幕全在线观看| 蜜月aⅴ免费一区二区三区| 日韩av网站导航| 亚洲黄在线观看| 久久视频免费在线播放| 懂色av中文一区二区三区天美| 精品中文字幕在线观看| 不卡av日日日| 国产成人97精品免费看片| 91精品国产高清久久久久久久久| 国产精品扒开腿爽爽爽视频| 国产美女直播视频一区| 欧美性生交大片免网| 日韩精品有码在线观看| 欧洲永久精品大片ww免费漫画| 欧美视频国产精品| 亚洲美女精品久久| 国产98色在线| 亚洲黄在线观看| 久久免费视频在线| 成人黄色影片在线| 欧美精品免费播放| 亚洲无亚洲人成网站77777| 色婷婷综合久久久久| 欧美性xxxxx极品娇小| 久久在线精品视频| 亚洲天堂影视av| 91精品视频在线免费观看| 精品免费在线视频| 欧美成人sm免费视频| 91国自产精品中文字幕亚洲| 国产综合在线观看视频| 欧美精品videos另类日本| 欧美放荡办公室videos4k| 色综合影院在线| 国产精品一区二区久久久| 美女精品视频一区| 国内精品美女av在线播放| 中文字幕在线国产精品| 国产香蕉精品视频一区二区三区| 大量国产精品视频| 国产婷婷97碰碰久久人人蜜臀| 成人两性免费视频| 成人观看高清在线观看免费| 欧美剧在线观看| 欧美猛交ⅹxxx乱大交视频| 深夜福利日韩在线看| 中文字幕亚洲欧美在线| 久久综合国产精品台湾中文娱乐网| 欧美最顶级丰满的aⅴ艳星| 影音先锋欧美在线资源| 国模精品系列视频| 久久躁日日躁aaaaxxxx| 日韩亚洲第一页| 国产精品视频999| 久99久在线视频| 久久视频在线观看免费| 日韩精品在线视频观看| 亚洲免费伊人电影在线观看av| 亚洲影院在线看| 欧洲精品毛片网站| 亚洲男人天堂久| 国产日韩欧美电影在线观看| 欧美国产日韩二区| 国产成人精品免费久久久久| 日韩av网站导航| 日韩人体视频一二区| 亚洲韩国青草视频| 亚洲欧美日本精品| 久久精品国产久精国产思思| 综合欧美国产视频二区| 欧洲美女免费图片一区| 日韩av免费看| 日本乱人伦a精品| 成人免费激情视频| 日本精品免费观看| 久99九色视频在线观看| 国产精品美女主播| 成人亚洲欧美一区二区三区| 97超碰蝌蚪网人人做人人爽| 日韩精品中文字幕久久臀| 久久6精品影院| 国产成人精品午夜| 久久国产精品免费视频| 亚洲a在线观看| 亚洲精品资源美女情侣酒店| 欧美激情视频在线免费观看 欧美视频免费一| 久久久999精品免费| 国产精品久久久久av| 在线播放国产一区二区三区| 高清日韩电视剧大全免费播放在线观看| 97国产精品人人爽人人做| 亚洲在线视频福利| 人人做人人澡人人爽欧美| 亚洲深夜福利在线| 国产精品久久久久久久7电影| 91精品国产色综合久久不卡98口| 欧美成人一区在线| 亚洲国产成人精品久久| 亚洲精品v天堂中文字幕| 国产精品一香蕉国产线看观看| 欧美一区二区三区四区在线| 中文字幕久精品免费视频|