日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对DataSet,DataRow,DateTable转换成相应的模型

發布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对DataSet,DataRow,DateTable转换成相应的模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/// <summary>/// DataRow 轉成 模型/// </summary>/// <typeparam name="T"></typeparam>/// <param name="dr"></param>/// <returns></returns>public static T ToModel<T>(this DataRow dr) where T : class, new(){T ob = new T();if (dr != null){Type vType = typeof(T);//創建一個屬性的列表PropertyInfo[] prlist = vType.GetProperties();DataColumnCollection vDataCoulumns = dr.Table.Columns;try{foreach (PropertyInfo vProInfo in prlist){if (vDataCoulumns.IndexOf(vProInfo.Name) >= 0 && dr[vProInfo.Name] != DBNull.Value){vProInfo.SetValue(ob, dr[vProInfo.Name], null);}}}catch (Exception ex){}}return ob;}/// <summary>/// DataTable 轉換為List 集合/// </summary>/// <typeparam name="T">類型</typeparam>/// <param name="dt">DataTable</param>/// <returns></returns>public static List<T> ToList<T>(this DataTable dt) where T : class, new(){//創建一個屬性的列表List<PropertyInfo> prlist = new List<PropertyInfo>();//獲取TResult的類型實例 ?反射的入口Type t = typeof(T);//獲得TResult 的所有的Public 屬性 并找出TResult屬性和DataTable的列名稱相同的屬性(PropertyInfo) 并加入到屬性列表?Array.ForEach<PropertyInfo>(t.GetProperties(), p => { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });//創建返回的集合List<T> oblist = new List<T>();if (dt != null){foreach (DataRow row in dt.Rows){try{//創建TResult的實例T ob = new T();//找到對應的數據 ?并賦值prlist.ForEach(p =>{if (dt.Columns.IndexOf(p.Name) >= 0 && row[p.Name] != DBNull.Value){try{//如果是泛型if (p.PropertyType.ToString().IndexOf("System.Nullable") > -1){string types = p.PropertyType.ToString().Substring(p.PropertyType.ToString().IndexOf("[") + 1);types = types.Substring(0, types.Length - 1);Type typeinfo = Type.GetType(types);p.SetValue(ob, Convert.ChangeType(row[p.Name], typeinfo), null);}else{p.SetValue(ob, Convert.ChangeType(row[p.Name], p.PropertyType), null);//類型轉換 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }}catch (Exception ex){LogUtility.WriteLogForExcepiton(ex);}}});//放入到返回的集合中. ? ? ? ? ? ? ? ? ? ? ? ? oblist.Add(ob);}catch (Exception ex){}}}return oblist;}


    
/// <summary> /// DataSet轉換為泛型集合 /// </summary> /// <typeparam name="T">泛型類型</typeparam> /// <param name="ds">DataSet數據集</param> /// <param name="tableIndex">待轉換數據表索引,默認第0張表</param> /// <returns>返回泛型集合</returns> public static IList<T> ToList<T>(this DataSet ds, int tableIndex = 0){if (ds == null || ds.Tables.Count < 0) return null;if (tableIndex > ds.Tables.Count - 1)return null;if (tableIndex < 0)tableIndex = 0;DataTable dt = ds.Tables[tableIndex];// 返回值初始化 IList<T> result = new List<T>();for (int j = 0; j < dt.Rows.Count; j++){T _t = (T)Activator.CreateInstance(typeof(T));PropertyInfo[] propertys = _t.GetType().GetProperties();foreach (PropertyInfo pi in propertys){for (int i = 0; i < dt.Columns.Count; i++){// 屬性與字段名稱一致的進行賦值 if (pi.Name.Equals(dt.Columns[i].ColumnName)){// 數據庫NULL值單獨處理 if (dt.Rows[j][i] != DBNull.Value)pi.SetValue(_t, dt.Rows[j][i], null);elsepi.SetValue(_t, null, null);break;}}}result.Add(_t);}return result;}/// <summary> /// DataSet轉換為泛型集合 /// </summary> /// <typeparam name="T">泛型類型</typeparam> /// <param name="ds">DataSet數據集</param> /// <param name="tableName">待轉換數據表名稱,名稱為空時默認第0張表</param> /// <returns>返回泛型集合</returns> public static IList<T> ToList<T>(this DataSet ds, string tableName){int _TableIndex = 0;if (ds == null || ds.Tables.Count < 0)return null;if (string.IsNullOrEmpty(tableName))return ToList<T>(ds, 0);for (int i = 0; i < ds.Tables.Count; i++){// 獲取Table名稱在Tables集合中的索引值 if (ds.Tables[i].TableName.Equals(tableName)){_TableIndex = i;break;}}return ToList<T>(ds, _TableIndex);}

?

?

?

轉載于:https://www.cnblogs.com/Kendy/p/10271642.html

總結

以上是生活随笔為你收集整理的对DataSet,DataRow,DateTable转换成相应的模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成年激情网 | 好吊色视频988gao在线观看 | 伊人激情视频 | 精品无码一区二区三区的天堂 | 中文字幕免费中文 | 成人激情小视频 | 黑人粗进入欧美aaaaa | 日韩中文字幕网站 | 日韩男女啪啪 | 中文字幕亚洲一区二区三区五十路 | 日韩在线一卡 | 成人在线观看视频网站 | 国产成人精品亚洲精品色欲 | 欧美一级免费 | 日本www在线播放 | 日本特黄特色aaa大片免费 | 国产成人精 | 成人毛片网 | 久久99久久98精品免观看软件 | 久久久久久1 | 特级黄毛片 | 欧美日韩在线观看免费 | 尤物综合网| 粉嫩欧美一区二区三区 | 九九热中文字幕 | 午夜精品福利一区二区三区蜜桃 | 中文字幕免费高清在线 | 成人免费av在线 | 色撸撸在线 | 精品午夜一区二区三区 | 裸体一区二区三区 | 狠狠干狠狠爱 | 欧美国产精品一区 | 亚洲一级二级片 | 久久亚洲精精品中文字幕早川悠里 | 少妇人妻偷人精品一区二区 | 无码人妻精品一区二区三应用大全 | 嫩草影院在线免费观看 | 无码久久av一区二区三区 | 久久福利精品 | 破处视频在线观看 | 动漫女被黄漫免费视频 | 成人国产一区二区 | 婷婷一区二区三区四区 | 一级片自拍 | a级黄色录像 | 国产精品久久麻豆 | 久久久久久久综合色一本 | 午夜性福利视频 | 婷婷综合亚洲 | 国内自拍99 | 国产在线精品一区 | 精品日韩在线视频 | 欧美日在线 | 久久91精品国产 | 亚洲18在线看污www麻豆 | 一区二区三区四区五区av | 66精品| 亚洲精选在线观看 | 就去干成人网 | 日本精品网 | 椎名空在线播放 | 毛片免费全部无码播放 | av爱爱爱 | 九一福利视频 | 亚洲精品电影网 | 国产在线一区二区三区四区 | 亚洲av中文无码乱人伦在线视色 | 亚洲精品理论 | 免费成人黄色网址 | 亚洲一区二区三区在线视频观看 | 国模人体私拍xvideos | 色吧在线视频 | 国产精品破处 | 日韩中文字幕亚洲精品欧美 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 国产真实交换夫妇视频 | 国产精品99久久久久久www | 美国美女黄色片 | 欧美一区二区视频在线观看 | 天堂一区二区三区 | 久久视频网 | 人妻少妇一区二区 | 国产又黄又大又粗的视频 | 欧美在线视频播放 | 天天天av | 国产一区二区三区影视 | 欧美精选一区二区 | 啪啪自拍视频 | 在线一本 | 久久99久久99精品 | xxx黄色片| 国产精品91一区 | 国产传媒视频 | 最新中文av | 国产美女主播视频 | www.com色| 久久97人妻无码一区二区三区 | 国产91综合一区在线观看 |