【发布时间】:2018-07-23 19:15:13
【问题描述】:
我正在尝试在本文中将 SQLite 实现到我的 Xamarin.Forms 共享资产项目中。
https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/databases/
在我的新手眼中,一切似乎都已正确设置,但是在创建数据库连接时似乎存在问题。它说它无法将类型 SQLite.SQLiteAsyncConnection 隐式转换为 TechsportiseApp.Data.TechsportiseData
我不知道这是为什么。有什么想法吗?
using System;
using System.Collections.Generic;
using System.Text;
using SQLite;
using Xamarin.Forms;
using static TechsportiseApp.Helpers.GlobalFunctions;
using TechsportiseApp.Models;
using System.Threading.Tasks;
namespace TechsportiseApp.Data
{
class TechsportiseData
{
public TechsportiseData(string dbPath)
{
database = new SQLite.SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<Scan>().Wait();
database.CreateTableAsync<Timing>().Wait();
}
static TechsportiseData database;
public static TechsportiseData Database
{
get
{
if (database == null)
{
database = new TechsportiseData(DependencyService.Get<IFileHelper>().GetLocalFilePath("TechsportiseData.db3"));
}
return database;
}
}
public Task<List<Timing>> GetTimingsAsync()
{
return database.Table<Timing>().ToListAsync();
}
public Task<List<Timing>> GetTimingsNotUploadedAsync()
{
return database.QueryAsync<Timing>("SELECT * FROM [Timing] WHERE [Uploaded] = 0");
}
public Task<Timing> GetTimingAsync(int id)
{
return database.Table<Timing>().Where(i => i.ID == id).FirstOrDefaultAsync();
}
public Task<int> SaveTimingAsync(Timing timing)
{
if (timing.ID != 0)
{
return database.UpdateAsync(timing);
}
else
{
return database.InsertAsync(timing);
}
}
public Task<int> DeleteTimingAsync(Timing timing)
{
return database.DeleteAsync(timing);
}
public Task<int> DeleteAllTimingsAsync()
{
return database.DeleteAllAsync(timing);
}
public Task<List<Scan>> GetScansAsync()
{
return database.Table<Scan>().ToListAsync();
}
public Task<List<Scan>> GetScansNotUploadedAsync()
{
return database.QueryAsync<Timing>("SELECT * FROM [Scan] WHERE [Uploaded] = 0");
}
public Task<Scan> GetScanAsync(int id)
{
return database.Table<Scan>().Where(i => i.ID == id).FirstOrDefaultAsync();
}
public Task<int> SaveScanAsync(Scan scan)
{
if (scan.ID != 0)
{
return database.UpdateAsync(scan);
}
else
{
return database.InsertAsync(scan);
}
}
public Task<int> DeleteScanAsync(Scan scan)
{
return database.DeleteAsync(scan);
}
public Task<int> DeleteAllScanssAsync()
{
return database.DeleteAllAsync(scan);
}
}
}
【问题讨论】:
-
嗯,我的蜘蛛侠感觉你没有完全和彻底地遵循教程
标签: c# sqlite xamarin.forms