sqlite数据阅读器中的错误双重表示

时间:2015-01-06 04:55:16

标签: c# wpf sqlite

我在SQLite项目中使用database作为.NET 4.5。有一个表格包含double类型的列。数据库访问被包装到一个类中,该类位于类库项目/程序集中。

该表创建如下:

create table mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, myvalue DOUBLE, updateTime INTEGER )

我可以正确插入新行。当我使用SQLite Browser检查数据库时,我可以清楚地看到值已正确插入。

现在有一个使用数据库包装器类的命令行项目。当我运行此程序时,所有双值都被正确获取。

在另一个项目中,作为WPF应用程序,我正在使用完全相同的数据库访问包装器库。但在这种情况下,double值完全搞砸了。

当我输入 14.28 时,它会读出 -5.1897674825990524E-306 。 我想这里只有一些双重表示的问题,但我不知道如何解决它。

摘要: Command Line有效,WPF没有。

修改: 我刚才看到,每当我读出数值时,虚假价值就会发生变化。所以还有其他一些神秘的基础。

 var query = "select id, myvalue, updateTime from mytable";
 var command = new System.Data.SQLite.SQLiteCommand(query, connection);
 var reader = command.ExecuteReader();

 while (reader.Read())
 {
    var myValue = (Double)reader["myvalue"];
    result.Add( myValue );
 }

更新:它适用于int和string。但仍然没有双倍。

0 个答案:

没有答案
相关问题