[英]C# - InvalidCastException when fetching double from sqlite
當我從C#中的SQLite數據庫中獲取任何double時,我一直收到InvalidCastException。 異常說“指定的轉換無效。”
我能夠在SQL管理器中看到該值,所以我知道它存在。 可以從數據庫中獲取字符串(VARCHARS)和整數。 我也可以將值作為對象來獲取,但是當我假設它是“ 66,8558604947586”(緯度協調)時,我得到“ 66.0”。
誰知道如何解決這個問題?
我的代碼:
using System.Data.SQLite;
...
SQLiteConnection conn = new SQLiteConnection(@"Data Source=C:\\database.sqlite; Version=3;");
conn.Open();
SQLiteDataReader reader = getReader(conn, "SELECT * FROM table");
//These are working
String name = reader.GetString(1);
Int32 value = reader.GetInt32(2);
//This is not working
Double latitude = reader.getDouble(3);
//This gives me wrong value
Object o = reader[3]; //or reader["latitude"] or reader.getValue(3)
您可能需要檢查用於將值存儲在數據庫中的數據類型。 好像你可以存儲一個整數,但試圖檢索它作為一個雙。
是否將實際的表模式定義為使用DOUBLE? 由於數據庫引擎是無類型的,因此SQLite將進行一些轉換 。 如果它實際上是SQL DOUBLE列,則也可以嘗試強制類型轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.