1. using System.Collections.Generic;
    2. using System.Reflection;
    3. using System.Text;
    4. namespace Helper
    5. {
    6. public class DataHelper
    7. {
    8. /// <summary>
    9. /// 获取所有的公共属性名称
    10. /// </summary>
    11. /// <typeparam name="T"></typeparam>
    12. /// <param name="t"></param>
    13. /// <returns></returns>
    14. public static string GetSqlNamesByModel_Properties<T>(T t)
    15. {
    16. StringBuilder name = new StringBuilder();
    17. name.AppendFormat("(");
    18. foreach (PropertyInfo p in t.GetType().GetProperties())
    19. {
    20. name.AppendFormat("{0},", p.Name);
    21. }
    22. string _name = name.ToString().Substring(0, name.ToString().Length - 1);
    23. _name += ")";
    24. return _name;
    25. }
    26. /// <summary>
    27. /// 获取所有的公共字段名称
    28. /// </summary>
    29. /// <typeparam name="T"></typeparam>
    30. /// <param name="t"></param>
    31. /// <returns></returns>
    32. public static string GetSqlNamesByModel<T>(T t)
    33. {
    34. StringBuilder name = new StringBuilder();
    35. name.AppendFormat("(");
    36. foreach (FieldInfo p in t.GetType().GetFields())
    37. {
    38. if (!t.GetType().ToString().Contains("List"))
    39. {
    40. name.AppendFormat("{0},", p.Name);
    41. }
    42. }
    43. string _name = name.ToString().Substring(0, name.ToString().Length - 1);
    44. _name += ")";
    45. return _name;
    46. }
    47. /// <summary>
    48. /// 通过模型,List获取List的所有内容,并且拼接成sql的values格式 (公共属性)
    49. /// </summary>
    50. /// <typeparam name="T"></typeparam>
    51. /// <typeparam name="T1"></typeparam>
    52. /// <param name="t"></param>
    53. /// <param name="t1"></param>
    54. /// <returns></returns>
    55. public static string GetSqlValuesByModel_PropertyInfo<T, T1>(T t, T1 t1)
    56. {
    57. StringBuilder values = new StringBuilder();
    58. List<T1> list = t as List<T1>;
    59. foreach (T1 item in list)
    60. {
    61. values.AppendFormat("(");
    62. foreach (PropertyInfo p in item.GetType().GetProperties())
    63. {
    64. var propertyInfo = item.GetType().GetProperty(p.Name);
    65. if (propertyInfo != null)
    66. values.AppendFormat("'{0}',", propertyInfo.GetValue(item, null));
    67. }
    68. values.AppendFormat("),");
    69. }
    70. string _values = "";
    71. if (values.ToString().Length > 0)
    72. {
    73. _values = values.ToString().Substring(0, values.ToString().Length - 1);
    74. _values = _values.Replace(",)", ")");
    75. }
    76. return _values;
    77. }
    78. /// <summary>
    79. /// 通过模型,List获取List的所有内容,并且拼接成sql的values格式 (公共字段)
    80. /// </summary>
    81. /// <typeparam name="T"></typeparam>
    82. /// <typeparam name="T1"></typeparam>
    83. /// <param name="t"></param>
    84. /// <param name="t1"></param>
    85. /// <returns></returns>
    86. public static string GetSqlValuesByModel<T, T1>(T t, T1 t1)
    87. {
    88. StringBuilder values = new StringBuilder();
    89. List<T1> list = t as List<T1>;
    90. foreach (T1 item in list)
    91. {
    92. values.AppendFormat("(");
    93. foreach (PropertyInfo p in item.GetType().GetProperties())
    94. {
    95. var propertyInfo = item.GetType().GetProperty(p.Name);
    96. if (propertyInfo != null)
    97. values.AppendFormat("'{0}',", propertyInfo.GetValue(item, null));
    98. }
    99. values.AppendFormat("),");
    100. }
    101. string _values = "";
    102. if (values.ToString().Length > 0)
    103. {
    104. _values = values.ToString().Substring(0, values.ToString().Length - 1);
    105. _values = _values.Replace(",)", ")");
    106. }
    107. return _values;
    108. }
    109. }
    110. }