我正在使用 Visual Studio 2017,它是 SQLite 的新手,我无法理解如何访问保存在数据库中的值并将其返回到类的元素中。
public class MyObject
{
[PrimaryKey, AutoIncrement]
public int IndexNumber
{get;set;}
[MaxLength(20)]
public int SomeID
{get;set;}
[MaxLength(70)]
public string SomeName
{get; set;}
[MaxLength(25)]
public string Telephone
{get; set;}
public DateTime someTime
{get; set;}
//...some more data
}
public class MyDB
{
readonly SQLiteAsyncConnection database;
public MyDB (string dbPath);
database.CreateTableAsync<MyObject>().Wait();
public Task<List<MyObject>> GetMyObjectAsync()
{
return database.Table<MyObject>().ToListAsync();
}
public Task<MyObject> GetSingleObjectAsync(int ind)
{
return database.Table<MyObject>().Where(i => i.IndexNumber == ind).FirstOrDefaultAsync();
}
public Task<int> SaveMyObjectAsync(MyObject object)
{
if (object.IndexNumber == 0)
{
return database.InsertAsync(object)
}
else
{
return database.UpdateAsync(object);
}
}
public Task<int> DeleteMyObjectAsync(MyObject object)
{
return database.DeleteAsync(object);
}
}
到目前为止,通过 .xaml 页面输入数据没有任何问题,在 ListView 中选择对象也可以。
现在的问题是,我似乎找不到合适的方法将返回的 Task 转换回一个对象,以使用仅通过 HTTP 响应提供的数据更新其中一些值,而 HTTP 响应本身并不总是为数据表,例如,如果在第一个响应中成功,则只有 ID 和代码。然后它需要来自对象的其他数据并再次为对象的不同元素传递值,这就是为什么我想知道是否有某种方法可以将一行数据返回到临时对象以在数据库中更新它,如果需要,删除它(通过 HTTP 响应取消)或修改它。