sqlite - 将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; }
}
}
解决方案
我刚刚开始学习 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");
推荐阅读
- r - r:自定义函数不适用于单列数据框
- python - 用美汤解析后原始网页上的链接丢失
- angular - Angular console.log() 在 index.js 中而不是在打字稿文件中显示行
- javascript - 如何在 Nest.js 中提供静态 HTML 文件?
- python - AWS Lambda(在 python 中)等待异步事件
- android - 将可打包数据从适配器传递到其他活动时出现意外行为
- sql-server - 无法删除带有触发器的记录
- android - 如何将 Text Asset 的值赋给 String 并在 Text() 中显示?
- javascript - 准确定位悬停在画布元素上的文本字段
- python - 如何从 Python 中的多个列表创建字典