首页 > 解决方案 > 将SELECT的内容添加到LIST

问题描述

我刚刚开始学习 Xamarin,我想将 SELECT 查询的内容添加到List<SearchModel>. 我该怎么做?根据 Sqlite,我创建了对象模型。

 List<SearchModel> searchModelsList = new List<SearchModel>();

try
        {
            using (sQLiteConnection = new SQLiteConnection(path))
            {
                try
                {
                   
                 sQLiteConnection.Execute("SELECT * FROM CONTENT_TABLE);

                    }
                catch (Exception ex) { 

                }


            }

        }
        catch (Android.Database.Sqlite.SQLiteException ex)
        {
            Log.Info("exex", ex.Message);

        }


 class SearchModel
{
    [PrimaryKey, AutoIncrement]
    public int ID { get; set; }
    public string PERSON { get; set; }
    public string NAME { get; set; }
}

}

标签: sqlitexamarin.android

解决方案


我刚刚开始学习 Xamarin,我想将 SELECT 查询的内容添加到 List。我该怎么做?根据 Sqlite,我创建了对象模型。

如果要从 sqlite 数据库中查询数据,可以查看以下代码:

 <StackLayout>

        <Button
            x:Name="createdb"
            Clicked="createdb_Clicked"
            Text="create table in sqlite" />
        <Button
            x:Name="btnadd"
            Clicked="btnadd_Clicked"
            Text="add data to sqlite" />

        <Button
            x:Name="btnfetdata"
            Clicked="btnfetdata_Clicked"
            Text="get data from sqlite" />

    </StackLayout>

 public partial class Page2 : ContentPage
{
    public SQLiteConnection conn;
    public Page2()
    {
        InitializeComponent();
       conn= GetSQLiteConnection();
    }
    public SQLiteConnection GetSQLiteConnection()
    {
        var fileName = "SearchModel.db";
        var documentPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
        var path = Path.Combine(documentPath, fileName);

        var connection = new SQLiteConnection(path);
        return connection;
    }

    private void btnadd_Clicked(object sender, EventArgs e)
    {
        //var data = conn.Table<SearchModel>();
        for(int i=0;i<20;i++)
        {
            SearchModel model = new SearchModel();
            model.PERSON = "person "+ i;
            model.NAME = "cherry "+ i;
            conn.Insert(model);
        }
    }
    private List<SearchModel> searchModelsList;
    private void btnfetdata_Clicked(object sender, EventArgs e)
    {
        searchModelsList = conn.Table<SearchModel>().ToList();

        var searchlist = conn.Query<SearchModel>("SELECT * FROM SearchModel WHERE PERSON = ?", "person 1");
    }

    private void createdb_Clicked(object sender, EventArgs e)
    {
        conn.CreateTable<SearchModel>();
    }
}

public class SearchModel
{
    [PrimaryKey, AutoIncrement]
    public int ID { get; set; }
    public string PERSON { get; set; }
    public string NAME { get; set; }
}

关于查询数据,可以使用

var searchlist = conn.Query<SearchModel>("SELECT * FROM SearchModel WHERE PERSON = ?", "person 1");

但是你也可以获取整个 SearchModel 表,然后从 List 中查询数据

searchModelsList = conn.Table<SearchModel>().ToList();

        var list = searchModelsList.Where(p => p.PERSON == "person 1");

推荐阅读