2014-02-20 86 views
2

我是ASP.NET和C#中的新成員。 我想知道如何將一個字段從字符串轉換爲DataTime。無法隱式地將類型'字符串'轉換爲'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/yyyy格式即02/20/2014。如果它有另一種格式,那麼您必須將"MM/dd/yyyy"更改爲其他格式。

相關問題