Я импортировать данные из CSV-файла, иногда есть столбец заголовков и несколько раз не клиент выбирает пользовательские столбцы (от нескольких падений падения)Переименовать столбец и введите Datatable после загрузки данных
моей проблема заключается в том я способный изменять тип и имя столбца, но когда я хочу импортировать строку данных в клонированную таблицу, она просто добавляет строки, но не содержит данных в этих строках. Если я переименую столбец в старые значения, он будет работать, скажем, имя столбца 0 будет 0, если я изменю это на что-то еще, что мне нужно, не будет заполнять строку ниже данными, но если я снова сменим ноль на ноль, это будет любое идея:
здесь мое кодирование:
#region Manipulate headers
DataTable tblCloned = new DataTable();
tblCloned = tblDataTable.Clone();
int i = 0;
foreach (string item in lstRecord)
{
if (item != "Date")
{
var m = tblDataTable.Columns[i].DataType;
tblCloned.Columns[i].DataType = typeof(System.String);
tblCloned.Columns[i].ColumnName = item;
}
else if(item == "Date")
{
//get the proper date format
//FillDateFormatToColumn(tblCloned);
tblCloned.Columns[i].DataType = typeof(DateTime);
tblCloned.Columns[i].ColumnName = item;
}
i++;
}
tblCloned.AcceptChanges();
foreach (DataRow row in tblDataTable.Rows)
{
tblCloned.ImportRow(row);
}
tblCloned.AcceptChanges();
#endregion
во втором цикле Еогеаспа при вызове для импорта данных клонированных таблицы добавляет пустые строки.
После нескольких попыток я пришел с этим решением, которое работает:
foreach (DataRow row in tblDataTable.Rows)
{
int x = 0;
DataRow dr = tblCloned.NewRow();
foreach (DataColumn dt in tblCloned.Columns)
{
dr[x] = row[x];
x++;
}
tblCloned.Rows.Add(dr);
//tblCloned.ImportRow(row);
}
, но я принимаю ответ Скотти, потому что это меньше кода в конце концов.
удивительным работать как задумано. Благодарю. – Developer