У меня есть IDataReader, который читает результат оператора SQL.
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var boolColumnString = reader[13](or even reader['boolcolumnname']).ToString();
}
}
Этот одинаковый фрагмент кода используется в обеих версиях System.Data.SQLite.
База данных имеет тип .mdc, а 13-й тип столбца - BOOL
со значением.установить ничего для всех записей.Пусто
Однако при использовании вышеуказанного считывателя с:
- System.Data.SQLite версии 1.0.66 значение
boolColumnString
равно «ложь», как и должно (потому что это имеет смысл) - System.Data.SQLite версии 1.0.109.2 значение
boolColumnString
равно 'true'
Редактировать: После более внимательного изучения я обнаружил, что проверка не выполняется, когдаВы пишете ТИП при настройке структуры таблицы.Например, вы можете ввести «NOTATYPE» и записать изменения, используя DB Browser for SQLite
, и они будут сохранены.
В результате этого может произойти что-то странное с тем, как проверяется ТИФ АФФИНИТИ, и результатом будет «истина / ложь».Пока я буду придерживаться разрешенных типов для SQL, но я все равно оставлю заявку открытой, если кто-то лучше поймет проблему.