源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#中DataSet转化为实体集合类的方法

  • 时间:2021-03-31 20:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#中DataSet转化为实体集合类的方法
本文实例讲述了C#中DataSet转化为实体集合类的方法,分享给大家供大家参考。具体实现方法如下:
[u]复制代码[/u] 代码如下:
/// <summary> /// DataSet转换为实体类 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="p_DataSet">DataSet</param> /// <param name="p_TableIndex">待转换数据表索引</param> /// <returns>实体类</returns> public static T DataSetToEntity<T>(DataSet p_DataSet, int p_TableIndex) {     if (p_DataSet == null || p_DataSet.Tables.Count < 0)  return default(T);     if (p_TableIndex > p_DataSet.Tables.Count - 1)  return default(T);     if (p_TableIndex < 0)  p_TableIndex = 0;     if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0)  return default(T);     DataRow p_Data = p_DataSet.Tables[p_TableIndex].Rows[0];     // 返回值初始化     T _t = (T)Activator.CreateInstance(typeof(T));     PropertyInfo[] propertys = _t.GetType().GetProperties();     foreach (PropertyInfo pi in propertys)     {  if (p_DataSet.Tables[p_TableIndex].Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data[pi.Name.ToUpper()] != DBNull.Value)  {      pi.SetValue(_t, p_Data[pi.Name.ToUpper()], null);  }  else  {      pi.SetValue(_t, null, null);  }     }     return _t; } /// <summary> /// DataSet转换为实体列表 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="p_DataSet">DataSet</param> /// <param name="p_TableIndex">待转换数据表索引</param> /// <returns>实体类列表</returns> public static IList<T> DataSetToEntityList<T>(DataSet p_DataSet, int p_TableIndex) {     if (p_DataSet == null || p_DataSet.Tables.Count < 0)  return default(IList<T>);     if (p_TableIndex > p_DataSet.Tables.Count - 1)  return default(IList<T>);     if (p_TableIndex < 0)  p_TableIndex = 0;     if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0)  return default(IList<T>);     DataTable p_Data = p_DataSet.Tables[p_TableIndex];     // 返回值初始化     IList<T> result = new List<T>();     for (int j = 0; j < p_Data.Rows.Count; j++)     {  T _t = (T)Activator.CreateInstance(typeof(T));  PropertyInfo[] propertys = _t.GetType().GetProperties();  foreach (PropertyInfo pi in propertys)  {      if (p_Data.Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data.Rows[j][pi.Name.ToUpper()] != DBNull.Value)      {   pi.SetValue(_t, p_Data.Rows[j][pi.Name.ToUpper()], null);      }      else      {   pi.SetValue(_t, null, null);      }  }  result.Add(_t);     }     return result; }
希望本文所述对大家的C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部