2016-03-15 2 views
0

Я пытаюсь для отображения времени в GridView колонки, но при загрузке информации, которую я получаю эту ошибку:TimeSpan указано литой не действует

Specified cast is not valid.

protected override void FillObject(DataRow dr) 
     { 
      ID = Convert.ToInt32(dr["ID"]); 
      if (dr["Company_ID"] != DBNull.Value) 
       CompanyID = Convert.ToInt32(dr["Company_ID"]); 
      if (dr["LoginTime"] != DBNull.Value) 
       LoginTime = (TimeSpan)(dr["LoginTime"]); //error 
} 

Get/Set кода:

public TimeSpan LoginTime { get; set; } 
+1

Что такое 'LoginTime' тип данных в SQL? –

+0

@ S.Akbari это 'DATETIME' – user123456789

+1

У вас есть проблема. 'DATETIME' соответствует' DateTime', а не 'TimeSpan'. Измените свой тип собственности и посмотрите, что вы можете понять. –

ответ

0

As @TimS. что вам нужно использовать переменную DateTime в коде для использования сервера Sql DATETIME. Из этого вы можете преобразовать его в TimeSpan, если это необходимо.

public DateTime LoginTime { get; set; }

LoginTime = (DateTime)(dr["LoginTime"]);

Для преобразования между ними, см How to get TimeSpan from DateTime

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