我在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。但仍然没有双倍。