/// <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 });
            }
        }