2017-03-01 91 views
-3

我试图显示日期并将其恢复到“标签=字符串”, ,但我有一个错误行“list.Add((字符串)myReader [”日期“]);”无法投射“System.DateTime”类型的对象以键入“System.String”。 c#

这里是我的代码:

con.Open(); 
     myReader = cmdDB.ExecuteReader(); 
     List<string> list = new List<string>(); 
     while (myReader.Read()) 
     { 
      list.Add((string)myReader["Date"]); 
     } 

     string[] strings = list.Select(x => x.ToString()).ToArray(); 
     cartesianChart1.AxisX.Add(new Axis 
     { 
      Title = "Date", 
      Labels = strings 
     }); 

     cartesianChart1.AxisY.Add(new Axis 
     { 
      Title = "Sales", 
      LabelFormatter = value => value.ToString() 
     }); 

任何解决方案?谢谢!附:我使用livechart和mysql

回答

0

list.Add(Convert.ToString(myReader["Date"])); 

它似乎你的Date列不是字符串,而是日期时间列。

在做(string)myReader["Date"]尝试在datetime列显式类型转换为字符串,这是不可能的。但是Convert.ToString给出了你的值的字符串表示。

即使值为null,Convert.ToString(object value)也会返回null而不是像.ToString()那样抛出异常。