2014-02-20 2 views
2

Я новичок в ASP.NET и C#. Я хотел бы знать, как преобразовать одно поле из строки в DataTime.Невозможно неявно преобразовать тип 'string' в 'System.DateTime', преобразовать тип данных для определенного столбца

string[] Lines = File.ReadAllLines(fileName); 
string[] Fields; 

//Remove Header line 
Lines = Lines.Skip(1).ToArray(); 
List<CountTable> emList = new List<CountTable>(); 
foreach (var line in Lines) 
{ 
    Fields = line.Split(new char[] { ',' }); 
    emList.Add(
     new CountTable 
     { 
      CountID = Fields[0].Replace("\"", ""), 
      Date = Fields[1].Replace("\"", ""), 
      UserID = Fields[2].Replace("\"", ""), 
      PrinterID = Fields[3].Replace("\"", ""), 
      Color = Fields[4].Replace("\"", ""), 
      BW = Fields[5].Replace("\"", ""), 
     }); 
} 

Я получил эту ошибку

Не удается неявно преобразовать 'строка' типа для '' System.DateTime

на этой линии

Date = Fields[1].Replace("\"", ""), 

Может ли один помочь мне меня с синтаксисом, как решить эту ошибку.

Спасибо!

ответ

1

Вы пытались преобразовать строку в объект DateTime?

См код ниже:

string[] Lines = File.ReadAllLines(fileName); string[] Fields; 
//Remove Header line 
Lines = Lines.Skip(1).ToArray(); 
List<CountTable> emList = new List<CountTable>(); 
foreach (var line in Lines) 
{ 
    Fields = line.Split(new char[] { ',' }); 
    emList.Add(
     new CountTable 
     { 
      CountID = Fields[0].Replace("\"", ""), 
      Date = Convert.ToDateTime(Fields[1].Replace("\"", "")), 
      UserID = Fields[2].Replace("\"", ""), 
      PrinterID = Fields[3].Replace("\"", ""), 
      Color = Fields[4].Replace("\"", ""), 
      BW = Fields[5].Replace("\"", ""), 
     }); 
} 
1

string не может быть неявно приведен к DateTime. Вы должны использовать DateTime.Parse() для явного преобразования string в DateTime.

Date = DateTime.Parse(Fields[1].Replace("\"", "")) 
0

Вы должны преобразовать string в DateTime явно. Я бы предложил использовать DateTime.ParseExact Method. Эта линия

Date = Fields[1].Replace("\"", ""), 

должна быть изменена на эту

Date = DateTime.ParseExact(Fields[1].Replace("\"", ""), "MM/dd/yyyy", null), 

Пожалуйста, обратите внимание, что с указанным кодом я asssume, что дата из файла имеет формат MM/dd/yyyy02/20/2014 т.е.. Если у него есть другой формат, вы должны изменить "MM/dd/yyyy" на другой формат.

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