2014-02-20 87 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"更改为其他格式。

相关问题