Пример #1
0
        public static DataTable ToFormattedTable(TableDescriptorBase descriptor, DataTable rawTable)
        {
            DataTable table = new DataTable();

            foreach (var col in descriptor.Columns)
            {
                table.Columns.Add(col.Name, col.Type);
            }
            ToFormattedTable(descriptor, rawTable, table);

            return(table);
        }
Пример #2
0
        public static void ToFormattedTable(TableDescriptorBase descriptor, DataTable rawTable, DataTable targetTable)
        {
            for (int r = 0; r < rawTable.Rows.Count; ++r)
            {
                if (descriptor.SkipRows.Contains(r))
                {
                    continue;
                }

                DataRow rawRow    = rawTable.Rows[r];
                DataRow row       = targetTable.NewRow();
                int     targetCol = 0;
                bool    isEmpty   = true;
                for (int c = 0; c < rawRow.ItemArray.Length; ++c)
                {
                    if (descriptor.SkipColumns.Contains(c))
                    {
                        continue;
                    }

                    if (targetCol == descriptor.Columns.Count)
                    {
                        break;
                    }

                    FormatColumn formatCol = descriptor.Columns[targetCol];
                    object       value     = formatCol.Convert(( string )rawRow[c]);
                    row[formatCol.Name] = (value != null ? value : DBNull.Value);
                    if (row[formatCol.Name] != DBNull.Value)
                    {
                        isEmpty = false;
                    }

                    targetCol++;
                }

                if (!isEmpty)
                {
                    targetTable.Rows.Add(row);
                }
            }
        }