Member 13838748 Ответов: 1

Изменение типа данных столбца в таблице данных на языке C#


Привет эксперты, у меня есть таблица данных, где я читаю значения из файла excel, тип данных, который он принимает, - строка. У меня есть столбец 4 с форматом DateTime. Но его чтение как строка. Как преобразовать строку в формат DateTime. У меня есть только один столбец для изменения типа данных. Пожалуйста, помогите.

Что я уже пробовал:

DataTable dtCloned = dt.Clone();
dtCloned.Columns[4].DataType = typeof(DateTime);
foreach (DataRow row in dt.Rows) 
{
    dtCloned.ImportRow(row);
}

Richard MacCutchan

Я только что попробовал это сделать, и он правильно читает поля как типы DateTime. Вы уверены, что это то, что у вас есть в файле Excel?

MadMyche

В каком формате предполагается Дата-Время?

Bryian Tan

Я думаю, что столбец достаточно умен, чтобы автоматически преобразовать строку в объект DateTime, если строка является допустимым форматом datetime. Чтобы проверить это, вы можете включить случайную строку в столбец 4, во время выполнения система выдаст ошибку "строка не была распознана как допустимая Дата-Время" - это мое предположение, основанное на опубликованном коде. и кстати, код и подход выглядят нормально, хотя название поста не сходится во взглядах.

1 Ответов

Рейтинг:
0

#realJSOP

Вы не можете изменить тип данных столбца, если DataTable в нем есть данные.

Вы можете попробовать убедиться, что столбец задан как дата/время в excel, прежде чем читать его.

Я написал статью, которая включает в себя код, который позволяет импортировать xlsx или csv-файлы, и если вы хотите/нуждаетесь в этом, вы можете вручную указать тип данных для каждого столбца или позволить коду вывести его самостоятельно.

CSV/Excel File Parser - A Revisit[^]