BaseServices.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using FCS.Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. namespace FCS.Services
  6. {
  7. /// <summary>
  8. /// 基础服务
  9. /// </summary>
  10. public class BaseServices
  11. {
  12. /// <summary>
  13. /// 装箱单个数据对象
  14. /// </summary>
  15. /// <typeparam name="T">装箱对象</typeparam>
  16. /// <param name="dr">装箱数据行</param>
  17. /// <returns></returns>
  18. protected T LoadData<T>(DataRow dr)
  19. {
  20. if (dr == null) return default(T);
  21. var t = typeof(T);
  22. var obj = Activator.CreateInstance(t);
  23. var properts = t.GetProperties();
  24. foreach (var pi in properts)
  25. {
  26. if (!dr.Table.Columns.Contains(pi.Name)) continue;
  27. pi.SetValue(obj, CommonHelper.ChangeType(dr[pi.Name], pi.PropertyType), null);
  28. }
  29. return (T)obj;
  30. }
  31. /// <summary>
  32. /// 装箱列表数据对象
  33. /// </summary>
  34. /// <typeparam name="T">装箱对象</typeparam>
  35. /// <param name="dt">装箱数据来源表格</param>
  36. /// <returns></returns>
  37. protected List<T> LoadDataList<T>(DataTable dt)
  38. {
  39. List<T> result = new List<T>();
  40. var t = typeof(T);
  41. var properts = t.GetProperties();
  42. object obj;
  43. foreach (DataRow dr in dt.Rows)
  44. {
  45. obj = Activator.CreateInstance(t);
  46. foreach (var pi in properts)
  47. {
  48. if (!dt.Columns.Contains(pi.Name)) continue;
  49. pi.SetValue(obj, CommonHelper.ChangeType(dr[pi.Name], pi.PropertyType), null);
  50. }
  51. result.Add((T)obj);
  52. }
  53. return result;
  54. }
  55. }
  56. }