SQLite - я получаю недостающую информацию из БД в список <> на c# - PullRequest
0 голосов
/ 05 мая 2020

Хенло, я пытаюсь получить имена пользователей из базы данных, и мне кажется, что мне не хватает индекса 0. Описание базы данных:

  • id: 1 имя пользователя: player 1
  • id: 2 имя пользователя: player 2
  • id: 3 имя пользователя: player 3 et c ... до игрока 7

        List<string> Uname = new List<string>();         
        SQLiteConnection connection = new SQLiteConnection();
        connection.ConnectionString = ("Data Source=e:\\GridDB\\users.db");
        connection.Open();
        string query = "SELECT username FROM players";
        SQLiteCommand cmd = new SQLiteCommand(query, connection);
        using (SQLiteDataReader rdr = cmd.ExecuteReader())
        {
            while (rdr.Read())
            {
                foreach (var item in rdr)
                {
                    Uname.Add(rdr["username"].ToString());
    
                }                    
            }
            rdr.Close();
            connection.Close();
        }
        for (int i = 0; i < Uname.Count; i++)
        {
             TB.AppendText(Uname[i] + "\n");
        }
    

и это мой результат :

player 2

player 3

player 4

player 5

player 6

player 7

проблема в том, что мне тоже нужен игрок 1 =)

1 Ответ

0 голосов
/ 05 мая 2020

Почему вы повторяете SqlDataReader еще раз после оператора while?

Это работает:

   List<string> Uname = new List<string>();         
    SQLiteConnection connection = new SQLiteConnection();
    connection.ConnectionString = ("Data Source=e:\\GridDB\\users.db");
    connection.Open();
    string query = "SELECT username FROM players";
    SQLiteCommand cmd = new SQLiteCommand(query, connection);
    using (SQLiteDataReader rdr = cmd.ExecuteReader())
    {
        while (rdr.Read())
        {
           Uname.Add(rdr["username"].ToString());         
        }
        rdr.Close();
        connection.Close();
    }
    for (int i = 0; i < Uname.Count; i++)
    {
         TB.AppendText(Uname[i] + "\n");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...