【发布时间】:2019-08-31 10:16:32
【问题描述】:
我在我的 xamarin 表单应用程序中创建了一个 sqlite 数据库。数据库正在保存记录,但是当我查询数据库以列出/显示记录时,它只显示其中的一些,而不是全部。当我使用以下代码查询数据库时,它将显示第一次查询的 1 条记录,第二次查询的 2 条记录,第三次查询的 5 条记录和第四次查询的 6 条记录,以提取与数据库相同的记录。
List<Words> abc = await App.Database.GetWordsAsync();
System.Console.WriteLine("abccount: " + abc.Count);
foreach (var abc1 in abc)
{
System.Console.WriteLine("abcitem: " + abc1.Word + " - ID: " + abc1.ID);
}
List<Words> abc2 = await App.Database.GetWordsAsync();
System.Console.WriteLine("abc3count: " + abc2.Count);
foreach (var abc3 in abc2)
{
System.Console.WriteLine("abc3item: " + abc3.Word + " - ID: " + abc3.ID);
}
结果如下:
08-31 10:00:40 I/mono-stdout(25307): abc1count: 1
08-31 10:00:40 I/mono-stdout(25307): abc1item: ass - ID: 1
08-31 10:00:40 I/mono-stdout(25307): abc2count: 2
08-31 10:00:40 I/mono-stdout(25307): abc2item: ass - ID: 1
08-31 10:00:40 I/mono-stdout(25307): abc2item: blackhead - ID: 2
08-31 10:00:40 I/mono-stdout(25307): abccount: 5
08-31 10:00:40 I/mono-stdout(25307): abcitem: ass - ID: 1
08-31 10:00:40 I/mono-stdout(25307): abcitem: blackhead - ID: 2
08-31 10:00:40 I/mono-stdout(25307): abcitem: bozo - ID: 3
08-31 10:00:40 I/mono-stdout(25307): abcitem: ego - ID: 4
08-31 10:00:40 I/mono-stdout(25307): abcitem: oaf - ID: 5
08-31 10:00:40 I/mono-stdout(25307): abc3count: 6
08-31 10:00:40 I/mono-stdout(25307): abc3item: ass - ID: 1
08-31 10:00:40 I/mono-stdout(25307): abc3item: blackhead - ID: 2
08-31 10:00:40 I/mono-stdout(25307): abc3item: bozo - ID: 3
08-31 10:00:40 I/mono-stdout(25307): abc3item: ego - ID: 4
08-31 10:00:40 I/mono-stdout(25307): abc3item: oaf - ID: 5
08-31 10:00:40 I/mono-stdout(25307): abc3item: redfish - ID: 6
我在 App.xaml.cs 中的数据库连接如下:
public static WordSearchDatabase Database
{
get
{
if (database == null)
{
database = new WordSearchDatabase(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "wordsearch.db3"));
}
return database;
}
}
我的数据库查询界面如下:
public class WordSearchDatabase
{
readonly SQLiteAsyncConnection database;
public WordSearchDatabase(string dbPath)
{
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<Words>().Wait();
}
public Task<List<Words>> GetWordsAsync()
{
return database.Table<Words>().ToListAsync();
}
}
谁能告诉我为什么同一个查询 GetWordsAsync 每次调用它时都会从数据库中提取不同数量的记录。
【问题讨论】:
标签: database forms sqlite xamarin