Esempio n. 1
0
        public static MyField[] DefaultFields()
        {
            List <MyField> fields = new List <MyField>();

            MyField fld = new MyField();

            fld.FieldName  = "CreateTime";
            fld.FieldValue = TableManager.DBServerTime();
            fld.EditFlags  = MyFieldEditFlags.Insert;
            fields.Add(fld);

            fld            = new MyField();
            fld.FieldName  = "CreateUser";
            fld.FieldValue = Global.g_username;
            fld.EditFlags  = MyFieldEditFlags.Insert;
            fields.Add(fld);

            fld            = new MyField();
            fld.FieldName  = "UpdateTime";
            fld.FieldValue = TableManager.DBServerTime();
            fld.EditFlags  = MyFieldEditFlags.Insert | MyFieldEditFlags.Update;
            fields.Add(fld);

            fld            = new MyField();
            fld.FieldName  = "UpdateUser";
            fld.FieldValue = Global.g_username;
            fld.EditFlags  = MyFieldEditFlags.Insert | MyFieldEditFlags.Update;
            fields.Add(fld);

            return(fields.ToArray());
        }
Esempio n. 2
0
        public static MyField[] addUpdateField(MyField[] fileds)
        {
            bool flg_updatetime = false, flg_updateuser = false;

            foreach (MyField fld in fileds)
            {
                if (fld.FieldName.ToLower() == UPDATE_TIME)
                {
                    flg_updatetime = true;
                }
                if (fld.FieldName.ToLower() == UPDATE_USER)
                {
                    flg_updateuser = true;
                }
            }

            List <MyField> list = new List <MyField>();

            list.AddRange(fileds);
            if (!flg_updatetime)
            {
                list.Add(new MyField("updatetime", TableManager.DBServerTime(), typeof(DateTime)));
            }
            if (!flg_updateuser)
            {
                list.Add(new MyField("updateuser", Global.g_username));
            }

            return(list.ToArray());
        }
Esempio n. 3
0
        public static MyField[] addCreateField(MyField[] fileds)
        {
            bool flg_createtime = false, flg_createuser = false;
            bool flg_updatetime = false, flg_updateuser = false;

            foreach (MyField fld in fileds)
            {
                if (fld.FieldName.ToLower() == CREATE_TIME)
                {
                    flg_createtime = true;
                }
                if (fld.FieldName.ToLower() == CREATE_USER)
                {
                    flg_createuser = true;
                }
                if (fld.FieldName.ToLower() == UPDATE_TIME)
                {
                    flg_updatetime = true;
                }
                if (fld.FieldName.ToLower() == UPDATE_USER)
                {
                    flg_updateuser = true;
                }
            }

            Nullable <DateTime> now = new Nullable <DateTime>();

            List <MyField> list = new List <MyField>();

            list.AddRange(fileds);
            if (!flg_createtime)
            {
                if (!now.HasValue)
                {
                    now = TableManager.DBServerTime();
                }
                list.Add(new MyField("createtime", now, typeof(DateTime)));
            }
            if (!flg_createuser)
            {
                list.Add(new MyField("createuser", Global.g_username));
            }
            if (!flg_updatetime)
            {
                if (!now.HasValue)
                {
                    now = TableManager.DBServerTime();
                }
                list.Add(new MyField("updatetime", now, typeof(DateTime)));
            }
            if (!flg_updateuser)
            {
                list.Add(new MyField("updateuser", Global.g_username));
            }

            return(list.ToArray());
        }
Esempio n. 4
0
        public virtual int Update()
        {
            List <MyField> datafields   = new List <MyField>();
            List <MyField> paramsfileds = new List <MyField>();

            Type t = this.GetType();

            PropertyInfo[] props = t.GetProperties();

            DataTable schema = SchemaBuffer.getTableDef(this.GetTableName());

            foreach (PropertyInfo p in props)
            {
                string fName = p.Name.ToUpper();
                Object val   = p.GetGetMethod().Invoke(this, new Object[] { });

                foreach (DataColumn dc in schema.PrimaryKey)
                {
                    if (dc.ColumnName.ToUpper() == fName)
                    {
                        paramsfileds.Add(new MyField(fName, val, p.PropertyType));
                        continue;
                    }
                }

                if (!this.IsReadOnlyField(fName))
                {
                    if (fName.ToLower() == "updatetime")
                    {
                        datafields.Add(new MyField(fName, TableManager.DBServerTime(), p.PropertyType));
                    }
                    else if (fName.ToLower() == "updateuser")
                    {
                        datafields.Add(new MyField(fName, Global.g_username, p.PropertyType));
                    }
                    else
                    {
                        if (val == null)
                        {
                            datafields.Add(new MyField(fName, DBNull.Value, p.PropertyType));
                        }
                        else
                        {
                            datafields.Add(new MyField(fName, val, p.PropertyType));
                        }
                    }
                }
            }

            return(TableManager.Update(this.GetTableName(), datafields.ToArray(), paramsfileds.ToArray()));
        }
Esempio n. 5
0
        public virtual int Update(params MyField[] paramfileds)
        {
            List <MyField> datafields = new List <MyField>();

            Type t = this.GetType();

            PropertyInfo[] props = t.GetProperties();

            foreach (PropertyInfo p in props)
            {
                string fName = p.Name.ToUpper();
                Object val   = p.GetGetMethod().Invoke(this, new Object[] { });

                if (!this.IsReadOnlyField(fName))
                {
                    if (fName.ToLower() == "updatetime")
                    {
                        datafields.Add(new MyField(fName, TableManager.DBServerTime(), p.PropertyType));
                    }
                    else if (fName.ToLower() == "updateuser")
                    {
                        datafields.Add(new MyField(fName, Global.g_username, p.PropertyType));
                    }
                    else
                    {
                        if (val == null)
                        {
                            datafields.Add(new MyField(fName, DBNull.Value, p.PropertyType));
                        }
                        else
                        {
                            datafields.Add(new MyField(fName, val, p.PropertyType));
                        }
                    }
                }
            }

            return(TableManager.Update(this.GetTableName(), datafields.ToArray(), paramfileds));
        }
Esempio n. 6
0
        public virtual int Create()
        {
            Type t = this.GetType();

            PropertyInfo[] props = t.GetProperties();
            PropertyInfo   auto_increase_field = null;

            List <MyField> fields = new List <MyField>();

            foreach (PropertyInfo p in props)
            {
                string fName = p.Name.ToUpper();
                if (!this.IsReadOnlyField(fName))
                {
                    if (fName.ToLower() == "createtime" ||
                        fName.ToLower() == "updatetime")
                    {
                        DateTime now = TableManager.DBServerTime();
                        fields.Add(new MyField(fName, now, p.PropertyType));
                        p.GetSetMethod().Invoke(this, new Object[] { now });
                    }
                    else if (fName.ToLower() == "createuser" ||
                             fName.ToLower() == "updateuser")
                    {
                        fields.Add(new MyField(fName, Global.g_username, p.PropertyType));
                        p.GetSetMethod().Invoke(this, new Object[] { Global.g_username });
                    }
                    else
                    {
                        Object val = p.GetGetMethod().Invoke(this, new Object[] { });
                        if (val == null)
                        {
                            fields.Add(new MyField(fName, DBNull.Value, p.PropertyType));
                        }
                        else
                        {
                            fields.Add(new MyField(fName, val, p.PropertyType));
                        }
                    }
                }
                else if (fName.ToUpper() == "ID")
                {
                    auto_increase_field = p;
                }
            }

            if (auto_increase_field != null)
            {
                int id;
                int ret = TableManager.Insert(this.GetTableName(), fields.ToArray(), out id);
                if (ret > 0)
                {
                    auto_increase_field.GetSetMethod().Invoke(this, new Object[] { id });
                }
                return(ret);
            }
            else
            {
                return(TableManager.Insert(this.GetTableName(), fields.ToArray()));
            }
        }