示例#1
0
 /// <summary>
 /// 数据项填充
 /// </summary>
 /// <param name="element"></param>
 /// <returns></returns>
 public bool Fill(IDBReportItem element,string sql)
 {
     DataTable dt = GetDataTable(sql);
     if (dt == null)
     {
         return false;
     }
     if (dt.Rows.Count > 0)
     {
         if (!FillData(element, dt.Rows[0], dt.Columns))
         {
             return false;
         }
     }
     return true;
 }
示例#2
0
 //填充对象属性
 protected bool FillData(IDBReportItem element, DataRow dr, DataColumnCollection columns)
 {
     Type type = element.GetType();
     return FillData(element, type, dr, columns);
 }
示例#3
0
 protected void FillProperty(IDBReportItem element, PropertyInfo p, object v)
 {
     try
     {
         if (v != DBNull.Value)
         {
             object value = Convert.ChangeType(v, p.PropertyType);
             p.SetValue(element, value, null);
         }
         else
         {
             p.SetValue(element, DefaultForType(p.PropertyType), null);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
示例#4
0
 protected bool FillData(IDBReportItem element, Type type, DataRow dr, DataColumnCollection columns)
 {
     PropertyInfo prop = null;
     foreach (DataColumn dc in columns)
     {
         try
         {
             prop = type.GetProperty(dc.ColumnName);
             if (IsColumn(prop))
             {
                 FillProperty(element, prop, dr[dc]);
             }
         }
         catch (Exception ex)
         {
             return false;
         }
     }
     return true;
 }