【发布时间】:2019-10-26 04:42:41
【问题描述】:
我有问题。我正在尝试从我的数据库中获取一个值(字符串)。这是我为获取值而调用的代码:
public string SelectValueFromTableSettings(string name)
{
string folder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
try
{
using (var connection = new SQLiteConnection(System.IO.Path.Combine(folder, "Settings.db")))
{
return connection.Query<SettingDb>("SELECT Value FROM SettingDb WHERE Name=?", name).ToString();
}
}
catch (SQLiteException ex)
{
Log.Info("SQLiteEx", ex.Message);
return null;
}
}
下面是给变量赋值的代码:
string SwitchValue = MainActivity.db.SelectValueFromTableSettings(mItems[position].Name);
我应该得到一个像 Nick 或 Steve 这样的值,但我得到的是这个值:
System.Collections.Generic.List`1[CryptoCurrencies.SettingDb]
我做错了什么?
【问题讨论】:
-
不是枚举
connection.Query<SettingDb>("...")的结果,而是调用ToString()。connection.Query<SettingDb>()返回List<SettingDb>。因为List<T>没有合理的字符串化,所以它只有默认的ToString(),它返回GetType().FullName或其他。相反,遍历列表。 -
那我该怎么办?
-
遍历查询返回的列表。看看里面有没有东西。
-
当您在查询结果上调用
ToString()时,您将获得结果类的名称,它是一个设置列表。对列表中的第一个数据使用FirstOrDefault()而不是ToString(),并使用SettingDb 属性来获得所需的结果。 -
请您发布 SettingsDb 类。
标签: c# sqlite xamarin.android android-sqlite