无法转换 .列表<字符串>到字符串

本文关键字:字符串 列表 转换 | 更新日期: 2023-09-27 18:34:37

不知道我在这里做错了什么。我使用下面的选择语句从 sql 服务器选择了日期数据。然后我想将其添加到列表中。我已经使用System.Type检查了数据类型,它告诉我我返回的值是System.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;
}

无法转换 .列表<字符串>到字符串

此错误背后的原因是,当您的方法声明说它应该返回String时,您有一个类型为 List<String> 的返回值。

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

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();(添加一个 using 语句,因为他们实现了 IDisposable