コード例 #1
0
ファイル: WF_Comm_Sys.cs プロジェクト: gzcw/MyWebApplication
        private string SetEntityAttrVal(string no, DataRow dr, Attrs attrs, Entity en, DataTable dt, int saveType)
        {
            string errInfo = "";

            //按照属性赋值.
            foreach (Attr item in attrs)
            {
                if (item.Key == "No")
                {
                    en.SetValByKey(item.Key, no);
                    continue;
                }
                if (item.Key == "Name")
                {
                    en.SetValByKey(item.Key, dr[item.Desc].ToString());
                    continue;
                }


                if (dt.Columns.Contains(item.Desc) == false)
                {
                    continue;
                }

                //枚举处理.
                if (item.MyFieldType == FieldType.Enum)
                {
                    string val = dr[item.Desc].ToString();

                    SysEnum se = new SysEnum();
                    int     i  = se.Retrieve(SysEnumAttr.EnumKey, item.UIBindKey, SysEnumAttr.Lab, val);

                    if (i == 0)
                    {
                        errInfo += "err@枚举[" + item.Key + "][" + item.Desc + "],值[" + val + "]不存在.";
                        continue;
                    }

                    en.SetValByKey(item.Key, se.IntKey);
                    continue;
                }

                //外键处理.
                if (item.MyFieldType == FieldType.FK)
                {
                    string val    = dr[item.Desc].ToString();
                    Entity attrEn = item.HisFKEn;
                    int    i      = attrEn.Retrieve("Name", val);
                    if (i == 0)
                    {
                        errInfo += "err@外键[" + item.Key + "][" + item.Desc + "],值[" + val + "]不存在.";
                        continue;
                    }

                    if (i != 1)
                    {
                        errInfo += "err@外键[" + item.Key + "][" + item.Desc + "],值[" + val + "]重复..";
                        continue;
                    }

                    //把编号值给他.
                    en.SetValByKey(item.Key, attrEn.GetValByKey("No"));
                    continue;
                }

                //boolen类型的处理..
                if (item.MyDataType == DataType.AppBoolean)
                {
                    string val = dr[item.Desc].ToString();
                    if (val == "是" || val == "有")
                    {
                        en.SetValByKey(item.Key, 1);
                    }
                    else
                    {
                        en.SetValByKey(item.Key, 0);
                    }
                    continue;
                }

                string myval = dr[item.Desc].ToString();
                en.SetValByKey(item.Key, myval);
            }

            try
            {
                if (en.IsNoEntity == true)
                {
                    if (saveType == 0)
                    {
                        en.Insert();
                    }
                    else
                    {
                        en.Update();
                    }
                }
            }
            catch (Exception ex)
            {
                return("err@" + ex.Message);
            }

            return(errInfo);
        }