我在 App.xaml.cs 中有这段代码:
private SQLiteConnection dbCon;
public void App_Startup(object sender, StartupEventArgs e)
{
SQLiteConnection.CreateFile("testdb.sqlite");
dbCon = new SQLiteConnection("Data Source=testdb.sqlite;Version=3;");
dbCon.Open();
string query = "create table if not exists Settings(Key nvarchar(max), Value nvarchar(max));";
SQLiteCommand command = new SQLiteCommand(query, dbCon);
command.ExecuteNonQuery();
}
这运行得很好......但是在 ShellViewModel.cs 我有这个:
public ShellViewModel()
{
dbCon = new SQLiteConnection("Data Source=testdb.sqlite;Version=3;");
dbCon.Open();
string query = "Select Value from Settings where (Key = 'isFirstTime')";
SQLiteCommand command = new SQLiteCommand(query, dbCon);
command.ExecuteNonQuery();
//if(no information or first time)
// show registerationview.xaml
//else
this.ActivateItem(new MainViewModel()); // show main view.
}
问题是我在上面的代码中得到“找不到表”。
我能想到的唯一原因App.xaml.cs
是在项目的根目录中,而ShellViewModel.cs
在ViewModels
文件夹中,但我不知道如何使它指向根目录中的特定数据库文件,如果那是甚至是问题。
什么是问题/解决方案?我试图找到答案,但所有问题都以“问题的可能原因”得到了回答,所以它们并没有真正的帮助。