我正在使用 EntityFramework 和 Sqlite 作为数据库制作一个简单的应用程序,以将该人添加并保存到数据库中并将其添加到ListView或删除它
我有一个Db类,在构造方法中,我使用了称为
的方法。 Database.EnsureCreated()
建立我的数据库。在MainPage.xaml.cs中,我创建了Db class(db)的实例,我想获取数据库中的所有Workers表并将其作为ListView的ItemSource传递。我也在OnAppearing()
方法中执行这些操作,以在启动时显示我的ListView项目,但我遇到此异常错误:
Microsoft.Data.Sqlite.SqliteExceptions:'SQLite错误1:'没有这样的表:Workers'。
(请参见下图)
似乎Database.EnsureCreated()
没有创建我的数据库。
也许它创建了我的数据库,但是由于某些原因却无法创建表,我想知道那些原因
这是我的Db类:
这是我的db_path: Android :
string FileName = "Workers.sqlite";
string FileLocation = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
string db_path = Path.Combine(FileLocation, FileName);
和 iOS :
string FileName = "Workers.sqlite";
string FileLocation = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "..", "Library");
string db_path = Path.Combine(FileLocation, FileName);
那么创建数据库和表的问题是什么?
答案 0 :(得分:0)
我刚刚在这些行中添加了using
关键字,但它意外地修复了它。
(我还删除了一些db_path变量,并通过从App类中获取它来使db_path源代码更干净,更流畅)。
现在代码如下:
using (Db db = new Db(App.db_path))
{
List<Worker> AllWorkers = db.Workers.ToList();
WorkersListView.ItemsSource = AllWorkers;
}