Выберите строковое значение из базы данных с помощью sqlite - PullRequest
1 голос
/ 11 июня 2019

У меня проблема. Я пытаюсь получить значение (строку) из моей базы данных. Вот код, который я звоню, чтобы получить значение:

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);

Я должен получить значение, такое как Ник или Стив, но я получаю это значение:

System.Collections.Generic.List`1 [CryptoCurrencies.SettingDb]

Что я делаю не так?

1 Ответ

3 голосов
/ 11 июня 2019

Вы возвращаете список объектов.

connection.Query<SettingDb>("SELECT Value FROM SettingDb WHERE Name=?", name).FirstOrDefault().YourProperty.ToString();

Или просто верните объект:

public SettingDB 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).FirstOrDefault();
        }
    }
    catch (SQLiteException ex)
    {
        Log.Info("SQLiteEx", ex.Message);
        return null;
    }
}

А затем перейдите к нужному свойству.

...