首页 > 解决方案 > System.Data.Sqlite dll不同版本对同一个数据库返回不同的BOOL值

问题描述

我有一个读取 SQL 语句结果的“IDataReader”。

using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var boolColumnString = reader[13](or even reader['boolcolumnname']).ToString();
                }
            }

System.Data.SQLite 版本都使用了相同的代码。

数据库的类型为 .mdc,第 13 列类型BOOL的所有记录的值都设置为空。它是空的。

但是,当使用上述阅读器时:

编辑:仔细看后发现配置表结构的时候写一个TYPE时没有做检查。例如,您可以键入“NOTATYPE”并使用 写入更改DB Browser for SQLite,它将被保存。

因此,检查 TYPE AFFINITY 的方式可能会发生一些奇怪的事情,并导致“真/假”结果。现在我会坚持使用允许的 SQL 类型,但我仍然会保留票证,以防有人更好地理解这个问题。

标签: c#.netsqlitesystem.data.sqlite

解决方案


推荐阅读