C #: Как заполнить ListView данными, взятыми из таблицы PostgreSQL? - PullRequest
0 голосов
/ 05 июля 2018

Мне нужна помощь с C # здесь ... Я пытаюсь научиться использовать формы с данными, взятыми из базы данных PostgreSQL. Вот почему моя цель - взять некоторые данные из таблицы и вставить эти данные в ListView. Моя проблема: как только я запускаю Форму, содержащую ListView, я получаю исключение, точно System.InvalidOperationException. The connection is not Open. Понятия не имею почему,

Вот код:

private void FormLoad(object sender, EventArgs e) {
            list.View = View.Details;
            list.GridLines = true;
            list.FullRowSelect = true;
            string connection = "Server=localhost;User Id=artemius;Password=prophet;" +
                "Database=Exams;";
            lista.Columns.Add("Course", 100);
            lista.Columns.Add("CFU", 70);
            lista.Columns.Add("Difficulty", 70);
            ListViewItem item;
            NpgsqlConnection conn;
            try {
                conn = new NpgsqlConnection(connection);
                conn.Open(); //Isn't it opened here?
                string sql = "select coursename, cfu, difficulty from courses where passed = false;";
                string[] courses= new string[3];
                NpgsqlCommand command = new NpgsqlCommand(sql);
                /*--On Row Below I get System.InvalidOperationException--*/
                NpgsqlDataReader dr = command.ExecuteReader();
                while (dr.Read()) {
                    courses[0] = dr[0].ToString();
                    courses[1] = dr[1].ToString();
                    courses[2] = dr[2].ToString();
                    item = new ListViewItem(corso);
                    lista.Items.Add(item);
                }
                conn.Close();
            }
            catch(NpgsqlException ecc) {
                Console.WriteLine(ecc.BaseMessage);
            }
        }

Ребята, вы знаете, как решить проблему? Спасибо

1 Ответ

0 голосов
/ 05 июля 2018

Вы не связали connection и command

Заменить

NpgsqlCommand command = new NpgsqlCommand(sql);

от

NpgsqlCommand command = new NpgsqlCommand(sql,conn);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...