using System.Collections.Generic;
using System.Reflection;
using System.Text;
namespace Helper
{
public class DataHelper
{
/// <summary>
/// 获取所有的公共属性名称
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string GetSqlNamesByModel_Properties<T>(T t)
{
StringBuilder name = new StringBuilder();
name.AppendFormat("(");
foreach (PropertyInfo p in t.GetType().GetProperties())
{
name.AppendFormat("{0},", p.Name);
}
string _name = name.ToString().Substring(0, name.ToString().Length - 1);
_name += ")";
return _name;
}
/// <summary>
/// 获取所有的公共字段名称
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string GetSqlNamesByModel<T>(T t)
{
StringBuilder name = new StringBuilder();
name.AppendFormat("(");
foreach (FieldInfo p in t.GetType().GetFields())
{
if (!t.GetType().ToString().Contains("List"))
{
name.AppendFormat("{0},", p.Name);
}
}
string _name = name.ToString().Substring(0, name.ToString().Length - 1);
_name += ")";
return _name;
}
/// <summary>
/// 通过模型,List获取List的所有内容,并且拼接成sql的values格式 (公共属性)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T1"></typeparam>
/// <param name="t"></param>
/// <param name="t1"></param>
/// <returns></returns>
public static string GetSqlValuesByModel_PropertyInfo<T, T1>(T t, T1 t1)
{
StringBuilder values = new StringBuilder();
List<T1> list = t as List<T1>;
foreach (T1 item in list)
{
values.AppendFormat("(");
foreach (PropertyInfo p in item.GetType().GetProperties())
{
var propertyInfo = item.GetType().GetProperty(p.Name);
if (propertyInfo != null)
values.AppendFormat("'{0}',", propertyInfo.GetValue(item, null));
}
values.AppendFormat("),");
}
string _values = "";
if (values.ToString().Length > 0)
{
_values = values.ToString().Substring(0, values.ToString().Length - 1);
_values = _values.Replace(",)", ")");
}
return _values;
}
/// <summary>
/// 通过模型,List获取List的所有内容,并且拼接成sql的values格式 (公共字段)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T1"></typeparam>
/// <param name="t"></param>
/// <param name="t1"></param>
/// <returns></returns>
public static string GetSqlValuesByModel<T, T1>(T t, T1 t1)
{
StringBuilder values = new StringBuilder();
List<T1> list = t as List<T1>;
foreach (T1 item in list)
{
values.AppendFormat("(");
foreach (PropertyInfo p in item.GetType().GetProperties())
{
var propertyInfo = item.GetType().GetProperty(p.Name);
if (propertyInfo != null)
values.AppendFormat("'{0}',", propertyInfo.GetValue(item, null));
}
values.AppendFormat("),");
}
string _values = "";
if (values.ToString().Length > 0)
{
_values = values.ToString().Substring(0, values.ToString().Length - 1);
_values = _values.Replace(",)", ")");
}
return _values;
}
}
}