У меня есть таблица в PostgreSQL, которая состоит из столбца типа данных BIT.Я просто использую команду select, чтобы получить результаты для моей таблицы, используя приложение C #.
Когда я использую версию Npgsql 3.1.10 , тогда операция загрузки DataTable работает нормально.
Но если я использую Npgsql версии 3.2.0 или выше, загрузка DataTable завершится с ошибкой:
System.ArgumentException: 'Тип значения имеетнесоответствие с типом столбца. Не удалось сохранить в столбце BitTable_bit_col.Ожидаемый тип - BitArray. '
Фрагмент кода приведен ниже.
NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;User Id=postgres;Password=root;Database=postgres;");
conn.Open();
var datatable = new DataTable();
using (var command = new NpgsqlCommand("SELECT \"BitTable\".\"id\" AS \"BitTable_id\" ,\"BitTable\".\"bit_col\" AS \"BitTable_bit_col\" ,\"BitTable\".\"boolean_col\" AS \"BitTable_boolean_col\" FROM \"BitTable\" AS \"BitTable\" limit 100", conn))
{
using (var reader = command.ExecuteReader())
{
datatable.Load(reader);
}
}
conn.Close();
Я подозреваю, что проблема в самом DataTable, к удивлению, он не может правильно читать данные.(В версии 3.1.10 мой битовый столбец типа данных рассматривается как логическое значение, но в версии 3.2.0 мой битовый столбец типа данных рассматривается как BitArray. Итак, эта проблема возникает)
Пожалуйста, дайте мне какое-либо решение для решения этой проблемыв последней версии Npgsql.