Моя строка кода не может работать из-за этой ошибки? - PullRequest
0 голосов
/ 24 апреля 2019

Таким образом, в основном здесь проблема, я пробовал много способов ее исправить, но ни один из них не сработал!Ошибка в этой строке: Templist.Add((string)result["titre"];.Templist это ошибка!

private List<string> ReadNews()
{
    string SqlText = "SELECT * FROM nom_table"; 
    List<string> Templist; 
    MySqlConnection SqlConnection = new 
    MySqlConnection(TheConnectionString);
    MySqlCommand SqlCommand = new 
    MySqlCommand(SqlText,SqlConnection);


    MySqlDataReader result = SqlCommand.ExecuteReader();

    while (result.Read())
    {
        Templist.Add((string)result["titre"]);
    }

    return Templist;
}

Ответы [ 3 ]

5 голосов
/ 24 апреля 2019

Поскольку вы не инициализировали Templist, пока вы не инициализируете / не назначите экземпляр, объявленная переменная (Templist) будет иметь значение null, и вы не сможете добавить что-то в null, что является ошибкойсообщение говорит.Код должен быть:

List<string> Templist =  new List<string>();

Еще одна вещь, которую я хотел бы добавить, - это использование using для правильной утилизации объектов, а также указание column names вместо *.Рассмотрим измененные фрагменты ниже:

private List<string> ReadNews()
{
    string SqlText = "SELECT titre FROM nom_table";
    List<string> Templist = new List<string>();
    using (SqlConnection SqlConnection = new MySqlConnection(TheConnectionString))
    {
        using (MySqlCommand SqlCommand = new MySqlCommand(SqlText, SqlConnection))
        {
            using (MySqlDataReader result = SqlCommand.ExecuteReader())
            {
                while (result.Read())
                {
                    Templist.Add((string)result["titre"]);
                }
            }

        }
    }
    return Templist;
}
3 голосов
/ 24 апреля 2019

Ваш Templist должен быть инициализирован перед использованием.Измените строку объявления на эту:

List<string> Templist = new List<string>();
3 голосов
/ 24 апреля 2019

Templist пусто, вы еще не создали экземпляр. Инициализировать:

List<string> Templist = new List<string>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...