示例#1
0
 private void ConvertColumnFromRow(DataRow row, EnumColumnList enumColumns)
 {
     if (enumColumns != null && enumColumns.Count > 0)
     {
         foreach (var entry in enumColumns)
         {
             Type enumType = entry.EnumType;
             if (!enumType.IsEnum)
             {
                 throw new ArgumentException("The type '" + enumType.AssemblyQualifiedName + "' is not enum.", "enumColumns");
             }
             int columnIndex = entry.ColumnIndex.HasValue ? entry.ColumnIndex.Value : row.Table.Columns.IndexOf(entry.ColumnName + "_ECCentral_Auto_Removed_820319");
             if (columnIndex < 0)
             {
                 continue;
             }
             if (row[columnIndex] == null || row[columnIndex] == DBNull.Value)
             {
                 row[entry.NewColumnIndex] = DBNull.Value;
                 continue;
             }
             object orignalData = row[columnIndex];
             if (orignalData == null || orignalData == DBNull.Value || orignalData.ToString().Trim().Length <= 0)
             {
                 row[entry.NewColumnIndex] = DBNull.Value;
             }
             row[entry.NewColumnIndex] = DataMapperHelper.ConvertIfEnum(orignalData, enumType);
         }
     }
 }
示例#2
0
        /// <summary>
        /// 执行返回第一行第一列的值,并自动转换为对应的类型,如果是泛型值且为空则会返回null
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public T ExecuteScalar <T>()
        {
            object v = DataMapperHelper.ConvertIfEnum(ExecuteScalar(), typeof(T));

            return(DataConvertor.GetValue <T>(v, null, null));
        }