Member 12962919 Ответов: 1

Преобразование строки в дату и время?


Я хочу импортировать данные из excel в базу данных с добавлением некоторых столбцов. Но когда я добавляю столбец даты в datatable он выдает ошибку "Строка не была распознана как допустимая Дата-Время."

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

try
       {
           string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes'", path);
               connection = new OleDbConnection();
               connection.ConnectionString = excelConnectionString;
        OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
               connection.Open();
               DbDataReader dr = command.ExecuteReader();
       DataTable table = new DataTable("Customers");
       table.Load(dr);
       table.Columns.Add("UploadedFromDate", typeof(DateTime));
       table.Columns.Add("UploadedToDate", typeof(DateTime));
       table.Columns.Add("CreatedDate", typeof(DateTime));

           foreach (DataRow row in table.Rows)
           {

               row["UploadedFromDate"] = DateTime.ParseExact(txtfromdate.Text.Trim(), "yyyy-MM-dd HH:mm tt", null);
               row["UploadedToDate"] = DateTime.ParseExact(txttodate.Text.Trim(), "yyyy-MM-dd HH:mm tt", null);
               row["CreatedDate"] = System.DateTime.Now;
           }

cvogt61457

Какой формат даты в Excel?

Karthik_Mahalingam

какова ценность, которую вы получаете от txtfromdate.Текст.Отделка()

Karthik_Mahalingam

обратитесь к этому https://stackoverflow.com/questions/3025361/c-sharp-datetime-to-yyyymmddhhmmss-format
и проверьте, используете ли вы правильный формат для вашего ввода

Member 12962919

спасибо проблема решена

1 Ответов

Рейтинг:
2

F-ES Sitecore

Сообщение об ошибке не требует пояснений. Все, что находится в "txtfromdate.Text.Trim()" (или в любой строке, на которой появляется сообщение об ошибке), не может быть преобразовано в дату с помощью "yyyy-MM-dd HH:mm tt". Мы не можем видеть ваши данные, поэтому мы не знаем, что это за данные и почему это может быть, но если текст не соответствует *точно*, это приведет к ошибке. Либо используйте TryParseExact, используя ряд форматов, либо попробуйте обработать, когда текст не может быть преобразован, чтобы не возникло ошибки. Все зависит от того, каким вы хотите видеть поток вашего кода.