/// <summary> /// 解析object所有字段 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static List <SQLField> GetAllFields(object obj) { List <MethodInfo> execMethods = Ajutil.GetMethodList(obj.GetType()); MethodInfo mdh_GetFields = execMethods.Find(t => t.Name.Equals("get_fields", StringComparison.CurrentCultureIgnoreCase)); List <SQLField> sqlFields = (List <SQLField>)mdh_GetFields.Invoke(obj, null); return(sqlFields); }
/// <summary> /// 解析object数据库表名 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string GetSechemaName(object obj) { List <MethodInfo> execMethods = Ajutil.GetMethodList(obj.GetType()); MethodInfo mdh_GetTableName = execMethods.Find(t => t.Name.Equals("get_tablename", StringComparison.CurrentCultureIgnoreCase)); string dbname = (string)mdh_GetTableName.Invoke(obj, null); return(dbname); }
internal static void ConvertAsObject <T>(DataTable dataTable, ref T item) { List <MethodInfo> execMethods = Ajutil.GetMethodList(item.GetType()); foreach (DataColumn col in dataTable.Columns) // 遍历数据库中所有列 { MethodInfo setMethod = execMethods.Find(t => t.Name.Equals("set_" + col.ColumnName, StringComparison.CurrentCultureIgnoreCase)); object dbValue = dataTable.Rows[0][col.ColumnName]; if (dbValue == DBNull.Value) // 数据库为null { if (col.DataType.Equals(typeof(DateTime))) // 日期类型 { dbValue = DateTime.Parse("1901-01-01 01:01:01"); } } setMethod.Invoke(item, new object[] { dbValue }); } }