@FlashDok

Как вывести ответ запроса Npgsql C#?

На python и в HeidiSQL запрос отрабатывает как надо, но хочу сделать в c# и не грузит данные из столбца.

По коду ниже можно вывести reader.GetString(1), reader.GetString(2)
А reader.GetString(0) не выводит

6389feefc7551614366305.png

string sql = "SELECT devices.lastdatats, deviceattributes.deveui, deviceattributes.value::jsonb->>'level_2' AS name " +
                "from devices LEFT JOIN deviceattributes on devices.deveui = deviceattributes.deveui " +
                "WHERE deviceattributes.attribute = 'other_info_1'";

            NpgsqlConnection conn = new NpgsqlConnection(conn_param);
            NpgsqlCommand comm = new NpgsqlCommand(sql, conn);

            conn.Open();
            NpgsqlDataReader reader;
            reader = comm.ExecuteReader();

            int i = 0;
            while (reader.Read())
            {
                
                try
                {
                    devGrid.Rows.Add();
                    devGrid.Rows[i].Cells[0].Value = reader.GetString(1);
                    devGrid.Rows[i].Cells[1].Value = reader.GetString(2);
                    i++;
                }
                catch { }
            }
            conn.Close();
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Потому что у тебя первая колонка не строка.
reader.GetInt64(0)
или
reader.GetFieldValue<long>(0)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Потому что сначала надо определить тип колонки, а потом уже запрашивать соответствующую функцию. У тебя там число, а не текст.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы