Example #1
0
        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);
        }