2013-11-14 3 views
-1

Я получаю сообщение об ошибке: «строка не была признан действительным время данных»строка не была признана действительным DataTime

SqlDataAdapter DataAp = new SqlDataAdapter(createCommand); 
DataTable dt = new DataTable("User"); 

var user = new User(); 

TimeSpan timeSpanDays = DateTime.Now.Subtract(DateTime.Parse(user.RegistrationTime.ToString())); 
var days = timeSpanDays.Days; 

if (days < 10) 
{ 
    DataAp.Fill(dt); 
    dgRecent.ItemsSource = dt.DefaultView; 
    DataAp.Update(dt); 
} 
+0

-1. Где вы получаете эту ошибку? Что вы сделали, чтобы исправить код? Пожалуйста, дайте более подробную информацию. –

+0

Что такое 'user.RegistrationTime'? и что такое 'user.RegistrationTime.ToString()'? –

ответ

0

В этом случае я думаю, ваш user.RegistrationTime не допустимый формат Дата Времени .. вы могли бы использовать parseExact() вместо простого parse() и указать формат, если он не является стандартным.

+0

ok, формат RegistrationTime находится в формате dd/mm/yyyy hh: mm: ss. Итак, как я могу это сделать? – user2631662

0

из ваших комментариев:
если формат RegistrationTime является: Это dd/mm/yyyy hh:mm:ss

:

TimeSpan timeSpanDays = DateTime.Now.Subtract(DateTime.Parse(user.RegistrationTime.ToString())); 

Должно быть:

TimeSpan timeSpanDays = DateTime.Now.Subtract(DateTime.ParseExact(user.RegistrationTime.ToString(),"dd/MM/yyyy HH:mm:ss",System.Globalization.CultureInfo.InvariantCulture)); 

Если предположить, что количество часов в 24-часовом формате.
Пожалуйста, дайте мне знать, если вам нужно что-то еще.

Смежные вопросы