public bool Insert <T>(T model) where T : class { ModelInfo mi = GetModelInfo <T>(); string format = "insert {0} ({1}) values({2});"; string clounms = ""; string values = ""; List <MySqlParameter> list = new List <MySqlParameter>(); foreach (PropertyInfo info in mi.ObjType.GetProperties()) { string name = info.Name; object obj2 = ModelProperty <T> .GetValue(model as T, name); if (name != mi.IDFieldName) { if (clounms.Length > 0) { clounms = clounms + "," + name; values = values + ",@" + name; } else { clounms = clounms + name; values = values + "@" + name; } list.Add(new MySqlParameter("@" + name, obj2)); } } format = string.Format(format, mi.TableName, clounms, values) + "select @@identity;"; int propertyValue = MySqlHandler.ExecuteSqlScalar(mi.Conn, format, list.ToArray()); if (propertyValue <= 0) { return(false); } string str5 = mi.ObjType.GetProperty(mi.IDFieldName).PropertyType.ToString(); if (str5 == null) { return(false); } if (str5 == "System.Int32") { ModelProperty <T> .SetValue(model as T, mi.IDFieldName, propertyValue); } else if (str5 == "System.Int16") { ModelProperty <T> .SetValue(model as T, mi.IDFieldName, (short)propertyValue); } else { ModelProperty <T> .SetValue(model as T, mi.IDFieldName, (long)propertyValue); } return(true); }