簡體   English   中英

為什么從 sqlite db 中選擇會顯示錯誤“指定的強制轉換無效”。 在 Xamarin 表單中?

[英]Why does select from sqlite db shows error 'Specified cast is not valid.' in Xamarin Forms?

從 SQLite 數據庫獲取單個值,但出現錯誤 System.InvalidCastException: 'Specified cast is not valid.' 我只需要選擇結果的第一個值,嘗試了 First() 和 ElementAtOrDefault(0) 但同樣的事情發生了。

嘗試分配給變量 IDPromoMainPage 時捕獲錯誤,而不是之前。

基本上這就是我調用值的方式:

private void GetPromoLocal()
        {
            try
            {
                var databasePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "LocalDB.db3");
                var db = new SQLiteConnection(databasePath);
                IEnumerable<T_Promo> resultado = SELECT_WHERE(db);
                if (resultado.Count() > 0)
                {
                    IDPromoMainPage = Convert.ToInt32(resultado.First()); // ElementAtOrDefault(0));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static IEnumerable<T_Promo> SELECT_WHERE(SQLiteConnection db)
        {
            return db.Query<T_Promo>("SELECT IDPromo FROM T_Promo");
        }

這里也發生了同樣的錯誤,正好在“PisterosLista = resultado.Cast().ToList();”行

List<Pisteros> PisterosLista = new List<Pisteros>();

public void GetPisterosLocal()
        {
            try
            {
                var databasePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "LocalDB.db3");
                var db = new SQLiteConnection(databasePath);
                IEnumerable<T_Pisteros> resultado = SELECT_WHERE_Pist(db);
                if (resultado.Count() > 0)
                {
                    PisterosLista = resultado.Cast<Pisteros>().ToList();
                    //Console.WriteLine("content :: " + content);
                    Console.WriteLine("Data :: " + PisterosLista);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static IEnumerable<T_Pisteros> SELECT_WHERE_Pist(SQLiteConnection db)
        {
            return db.Query<T_Pisteros>("SELECT * FROM T_Pisteros");
        }

如果列IDPromo是一個整數,那么就這樣做

    IEnumerable<int> resultado = SELECT_WHERE(db);

    public static IEnumerable<int> SELECT_WHERE(SQLiteConnection db)
    {
        return db.Query<int>("SELECT IDPromo FROM T_Promo");
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM