System.Data.Sqlite dll不同版本为同一数据库返回不同的BOOL值

时间:2019-02-08 09:43:13

标签: c# .net sqlite system.data.sqlite

我有一个“ 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,所有记录的值均设置为none。它是空的。

但是,当将上述阅读器与以下内容一起使用时:

  • System.Data.SQLite版本1.0.66 boolColumnString的值应为'false'(这是有道理的)
  • System.Data.SQLite版本1.0.109.2 boolColumnString的值为'true'

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

因此,在检查类型友善性并导致结果为“真/假”时可能会发生一些奇怪的情况。现在,我将继续使用允许的SQL类型,但是如果有人更好地理解了该问题,我仍然会保留该票证。

0 个答案:

没有答案