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); } } }
public void ConvertColumn(DataTable table, EnumColumnList enumColumns) { if (table == null || table.Rows == null || table.Rows.Count <= 0) { return; } 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"); } string columnName = entry.ColumnIndex.HasValue ? table.Columns[entry.ColumnIndex.Value].ColumnName : entry.ColumnName; int index = table.Columns.IndexOf(columnName); if (index >= 0) { table.Columns[index].ColumnName = (entry.NewColumnNameForOriginalValue != null && entry.NewColumnNameForOriginalValue.Trim().Length > 0) ? entry.NewColumnNameForOriginalValue : (columnName + "_ECCentral_Auto_Removed_820319"); table.Columns.Add(columnName, enumType); entry.ColumnIndex = index; entry.NewColumnIndex = table.Columns.Count - 1; } } } foreach (DataRow row in table.Rows) { ConvertColumnFromRow(row, enumColumns); } }
public DataTable ExecuteDataTable(EnumColumnList enumColumns) { DataTable table = ExecuteDataTable(); ConvertEnumColumn(table, enumColumns); return(table); }
public void ConvertEnumColumn(DataTable table, EnumColumnList enumColumns) { ConvertColumn(table, enumColumns); }