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