c# - Xamarin Forms Sqlite 创建任务
问题描述
我在我的 xamarin 项目中使用 SQLite。我有一堂课,当我想检索记录时,我使用
以下任务,例如
public Task<List<Movies_RecDef>> GetMovies_RecDefs_ByID(int ID)
{
string sqlStr = "SELECT * FROM [Movies_RecDef] where [ID] = " + ID;
return _database.QueryAsync<Movies_RecDef>(sqlStr);
}
我想创建一个任务来返回表中的记录数或字段的名称,但我混淆了我使用的变量。
解决方案
我想创建一个任务来返回表中的记录数或字段的名称,但我混淆了我使用的变量。
这是我的班级经理:
public class Managers
{
[PrimaryKey, AutoIncrement]
public int? ID { get; set; }
public string EmployeeID { get; set; }
public string Name { get; set; }
}
我创建 SQLiteHelper 类来从 Sqlite 数据库中获取一些数据。
public class SQLiteHelper
{
SQLiteAsyncConnection db;
public SQLiteHelper(string dbPath)
{
db = new SQLiteAsyncConnection(dbPath);
db.CreateTableAsync<Managers>().Wait();
}
//Insert and Update new record
public Task<int> SaveItemAsync(Managers person)
{
if (person.ID != null)
{
return db.UpdateAsync(person);
}
else
{
return db.InsertAsync(person);
}
}
//Delete
public Task<int> DeleteItemAsync(Managers person)
{
return db.DeleteAsync(person);
}
//Read All Items
public Task<List<Managers>> GetItemsAsync()
{
return db.Table<Managers>().ToListAsync();
}
//Read Item
public Task<Managers> GetItemAsync(int personId)
{
return db.Table<Managers>().Where(i => i.ID == personId).FirstOrDefaultAsync();
}
}
现在,您可以使用 Id 参数获取记录数或获取任何一条记录。
SQLiteHelper db;
private async void btnget_Clicked(object sender, EventArgs e)
{
Managers m = await db.GetItemAsync(1);
}
private async void btngetcount_Clicked(object sender, EventArgs e)
{
List<Managers> datas = await db.GetItemsAsync();
int count = datas.Count;
}
推荐阅读
- regex - 如何从 Postgres SELECT 将冒号插入 Mac 地址而不使用任何
- excel - 使用 worksheets.range 移动数据
- python - 线性回归 - 使用梯度方法的岭回归查找系数项的以下实现是否正确?
- c - 如何在 macOS 上使用 gcc 生成包含 C 源的程序集?
- php - 引导手风琴在 laravel 中无法动态正常工作
- html - 为什么加载器不能在 IE 浏览器中正确显示?
- python - Django - 如何将项目添加到 Bootstrap 下拉列表?
- r - 如何获取 r 数据框中描述中单词的超链接?
- django - Django 表单:如何使用 Html 和 css 模板表单
- php - 设置空 CURLOPT_POSTFIELDS