C# 为什么在Xamarin表单中,select from sqlite db显示错误“指定的强制转换无效”?
通过SQLite数据库从中获取单个值,但得到错误System.InvalidCastException:“指定的强制转换无效。” 我只需要select结果的第一个值,尝试了first和ElementAtOrDefault0,但发生了相同的情况 尝试分配变量IDPromoMainPage时捕捉到错误,而不是在此之前 基本上,我是这样称呼这个值的:C# 为什么在Xamarin表单中,select from sqlite db显示错误“指定的强制转换无效”?,c#,sqlite,xamarin.forms,C#,Sqlite,Xamarin.forms,通过SQLite数据库从中获取单个值,但得到错误System.InvalidCastException:“指定的强制转换无效。” 我只需要select结果的第一个值,尝试了first和ElementAtOrDefault0,但发生了相同的情况 尝试分配变量IDPromoMainPage时捕捉到错误,而不是在此之前 基本上,我是这样称呼这个值的: private void GetPromoLocal() { try {
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列是一个int,那么只需执行以下操作
IEnumerable<int> resultado = SELECT_WHERE(db);
public static IEnumerable<int> SELECT_WHERE(SQLiteConnection db)
{
return db.Query<int>("SELECT IDPromo FROM T_Promo");
}
如果IDPromo列是一个int,那么只需执行以下操作
IEnumerable<int> resultado = SELECT_WHERE(db);
public static IEnumerable<int> SELECT_WHERE(SQLiteConnection db)
{
return db.Query<int>("SELECT IDPromo FROM T_Promo");
}
不工作,甚至无法从数据库中获取数据,即使是,IDPromo字段是整数第一次是异常,现在我再次尝试并工作。但我使用的是IDPromoMainPage=resultado.First;若要分配值并始终返回0,则值应为1。我将检查您的数据以确保情况属实。而且该查询不保证按任何特定顺序排序,因为应该只存在一行,所以排序问题不存在。插入数据时,我使用的是``private SQLiteAsyncConnection\u conn_conn.InsertAsyncDatosRegistro;`对于这个查询,我使用``var databasePath=System.IO.Path.CombineEnvironment.GetFolderPathEnvironment.SpecialFolder.Personal,LocalDB.db3;var db=new-SQLiteConnectiondatabasePath;`但我不知道这是否是t_promo?类型的okIs DatosRegistro?不起作用,甚至无法从数据库中获取数据,尽管是的,IDPromo字段是integer第一次是例外,现在我再次尝试并工作了。但我使用的是IDPromoMainPage=resultado.First;若要分配值并始终返回0,则值应为1。我将检查您的数据以确保情况属实。而且该查询不保证按任何特定顺序排序,因为应该只存在一行,所以排序问题不存在。插入数据时,我使用的是``private SQLiteAsyncConnection\u conn_conn.InsertAsyncDatosRegistro;`对于这个查询,我使用``var databasePath=System.IO.Path.CombineEnvironment.GetFolderPathEnvironment.SpecialFolder.Personal,LocalDB.db3;var db=new-SQLiteConnectiondatabasePath;`但我不知道那是不是t_promo类型的okIs Datosristro?