public static void Query(BusinessObject BO, BusinessObjectCollection collection) { try { string sql; string connectionstring; sql = AssemblyBusinessObject.GetSelectSQL(BO); collection.RemoveAllObject(); connectionstring = string.Empty; DataSet ds; DataTable dt; string [] tablename = new string[1]; string displayname; ds = null; if (BO.SessionInstance != null) { ds = BO.SessionInstance.SqlHelper.ExecuteDataSet(sql, CommandType.Text); } else { ds = BO.SqlHelper.ExecuteDataSet(sql, CommandType.Text); } //ds = DBFactory.GetInstance().GetSqlHelper().ExecuteDataSet(sql,CommandType.Text); dt = ds.Tables[0]; if (dt.Rows.Count <= 0) { return; } BusinessObject businessobject; for (int rows = 0; rows < dt.Rows.Count; rows++) { businessobject = BO.Clone(); FieldInfo [] fieldinfo = businessobject.GetType().GetFields(); for (int i = 0; i < fieldinfo.Length; i++) { System.Attribute [] attribute = System.Attribute.GetCustomAttributes(fieldinfo[i]); Field field = (Field)fieldinfo[i].GetValue(businessobject); //为外键的Display字段赋值 if (attribute.Length > 0) { for (int j = 0; j < attribute.Length; j++) { if (attribute[j].ToString() == "Wicresoft.BusinessObject.ForeignKeyAttribute") { displayname = ((ForeignKeyAttribute)attribute[0]).MappingName; if (dt.Rows[rows][fieldinfo[i].Name] == System.DBNull.Value) { if (dt.Rows[rows][displayname] != System.DBNull.Value) { field.DisplayValue = dt.Rows[rows][displayname].ToString(); } } else { field.DisplayValue = dt.Rows[rows][displayname].ToString(); } } } } //为每个字段的Value赋值 System.Reflection.PropertyInfo subfieldinfo = field.GetType().GetProperty("Value"); if (dt.Rows[rows][fieldinfo[i].Name] != System.DBNull.Value) { subfieldinfo.SetValue(field, dt.Rows[rows][fieldinfo[i].Name], BindingFlags.SetProperty, null, null, null); } } businessobject.Rowstatus = RowStatus.Old; collection.Add(businessobject); } } catch (System.Exception ex) { throw ex; } }
public static void Load(BusinessObject BO) { try { string sql; string connectionstring; sql = AssemblyBusinessObject.GetSelectSQL(BO); connectionstring = string.Empty; DataSet ds; DataTable dt; string [] tablename = new string[1]; string mappingName; ds = null; if (BO.SessionInstance != null) { ds = BO.SessionInstance.SqlHelper.ExecuteDataSet(sql, CommandType.Text); } else { ds = BO.SqlHelper.ExecuteDataSet(sql, CommandType.Text); } dt = ds.Tables[0]; if (dt.Rows.Count <= 0) { BO.HaveRecord = false; return; } else { BO.HaveRecord = true; } FieldInfo [] fieldinfo = BO.GetType().GetFields(); for (int i = 0; i < fieldinfo.Length; i++) { System.Attribute [] attribute = System.Attribute.GetCustomAttributes(fieldinfo[i]); Field field = (Field)fieldinfo[i].GetValue(BO); //为外键的Display字段赋值 if (attribute.Length > 0) { for (int j = 0; j < 1; j++) { if (attribute[j].ToString() == "Wicresoft.BusinessObject.ForeignKeyAttribute") { mappingName = ((ForeignKeyAttribute)attribute[0]).MappingName; if (dt.Rows[0][fieldinfo[i].Name] == System.DBNull.Value) { if (dt.Rows[0][mappingName] != System.DBNull.Value) { field.DisplayValue = dt.Rows[0][mappingName].ToString(); } } else { field.DisplayValue = dt.Rows[0][mappingName].ToString(); } } } } //为每个字段的Value赋值 System.Reflection.PropertyInfo subfieldinfo = field.GetType().GetProperty("Value"); if (dt.Rows[0][fieldinfo[i].Name] != System.DBNull.Value) { subfieldinfo.SetValue(field, dt.Rows[0][fieldinfo[i].Name], BindingFlags.SetProperty, null, null, null); } } } catch (System.Exception ex) { throw ex; } }