当我尝试将DOUBLE值插入到我的SQLite表中时,它们以某种方式自动转换为INT值,即使我将属性类型定义为DOUBLE或REAL。但是,如果我改变属性类型,例如VARCHAR它不正确地存储我插入DOUBLE值...创建该表的SQL语句的形式为:C#:SQLite存储双精度作为整数
CREATE table (someAttribute DOUBLE)
和INSERT查询:
INSERT into table(someDoubleValue) // => e.g. 1.5932 gets stored as 1
如果有人知道为什么会发生这种情况,我该如何修复它(这样它实际上将DOUBLE值存储为DOUBLE),这将非常感谢!
编辑:C#代码将是这样的:
SQLiteCommand command = new SQLiteCommand("CREATE TABLE table1(someAttribute DOUBLE)", m_dbConnection);
command.ExecuteNonQuery();
command.CommandText = "INSERT INTO table1('1.5932')";
command.ExecuteNonQuery();
command.CommandText = "SELECT * FROM table1";
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
Console.WriteLine("value: "+reader["someAttribute"]); //this will display an integer value instead of a double
你可以发布一些特定的C#代码显示INSERT吗? –
请编辑您的帖子并添加c#相关代码。如果它不是一个C#项目,请编辑它以删除C#标记;-) – bradbury9
你认为它们是什么整数?在数据库表本身中,还是在检索它们之后? –