2014-12-19 2 views
1

Не уверен, что я делаю неправильно здесь. Я выбрал данные даты с сервера sql, используя инструкцию select ниже. Затем я хотел добавить его в список. Я проверил тип данных, используя System.Type, и он сообщает мне, что значения, которые я возвращаю, это System.String. Поэтому я подумал, что это должно быть в состоянии добавить его в список типа String, но я получаю сообщение об ошибке:Невозможно преобразовать .List <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; 
} 
+3

Возможно, ваш тип возврата будет String, и вы возвращаете «Список '? – MiiinimalLogic

+0

Если вам нужна строка, вы должны добавить результат из db в 'stringbuilder', а затем сделать' tostring' –

ответ

8

Причина этой ошибки исходит из того, что у вас есть возвращаемое значение типа List<String>, когда в объявлении вашего метода указано, что он должен вернуть String.

Компилятор сообщает, что не может преобразовать объект типа List с отложенным типом String в 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();), так как они реализуют IDisposable.

+0

Ahh, что было очевидно. Как глупо со мной. Большое вам спасибо Алерти. – Danrex

Смежные вопросы