无法将.List <string>转换为字符串</string>

时间:2014-12-19 02:52:27

标签: c# string list

不确定我在这里做错了什么。我使用下面的select语句从sql server中选择了日期数据。然后我想将它添加到列表中。我已经使用System.Type检查了数据类型,它告诉我我得到的值是System.String。所以我认为这应该能够将它添加到String类型的列表中,但我一直收到错误:

无法隐式将System.Collections.Generic.List<string>类型转换为string

public String getListFromColumnAsDATE(String columnName, String database)
{
    myCommand = new SqlCommand("SELECT [Date] = convert(char(10), getdate(), 103) FROM Weekly_Tannery_Data", myConnection);
    List<String> graphList = new List<String>();
    myConnection.Open();

    myReader = myCommand.ExecuteReader();

    while (myReader.Read())
    {
        graphList.Add(myReader.GetString(0));
    }

    myConnection.Close();
    return graphList;
}

1 个答案:

答案 0 :(得分:9)

此错误背后的原因是,当您的方法声明声明它应返回List<String>时,您的返回值为String

编译器通知您它无法将具有延迟类型List的{​​{1}}类型的对象转换为String。这是正常的,因为它无法单独这样做。根据您的上下文,您需要在方法声明中切换返回值类型,如下所示,或者将列表转换为canon建议的字符串。

String

小方注:

我会谦虚地建议为public List<String> getListFromColumnAsDATE(String columnName, String database) { myCommand = new SqlCommand("SELECT [Date] = convert(char(10), getdate(), 103) FROM Weekly_Tannery_Data", myConnection); List<String> graphList = new List<String>(); myConnection.Open(); myReader = myCommand.ExecuteReader(); while (myReader.Read()) { graphList.Add(myReader.GetString(0)); } myConnection.Close(); return graphList; } 和读者(SqlCommand)添加使用声明,因为它们会实现myReader = myCommand.ExecuteReader();