我尝试做的就是使用我存储在应用程序的Assets文件夹中的.sqlite数据库文件(/Assets/CommonCore.sqlite)。我试图建立连接,我尝试了一些不同的东西:
SQLite.Net.SQLiteConnection conn;
public MainPage()
{
this.InitializeComponent();
conn = new SQLite.Net.SQLiteConnection("Data Source=Assets/CommonCore.sqlite");
但是这会引发异常"不包含带有1个参数的构造函数"。
string path;
SQLite.Net.SQLiteConnection conn;
public MainPage()
{
this.InitializeComponent();
path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "CommonCore.sqlite");
conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
但引用了一个文件夹" \ AppData \ Local \ Packages \ 8ed84aca-896d-4286-ba91-e52316db2e89_dzc2ymb8n4xk4 \ LocalState \ CommonCore.sqlite"这显然不是我需要的文件。
我确定这是一件令我愚蠢的事情。
答案 0 :(得分:2)
在UWP应用中,您可以访问的文件夹是有限的:
在您的情况下,您尝试写入应用程序数据位置。但是,每次安装应用程序时,此文件夹都是空的。
另一种方法是从安装文件夹中读取sqlite数据库。可以轻松地将项目中的文件添加到此文件夹中。要执行此操作,首先必须声明要打包的文件。这意味着将它们添加到安装文件夹中。首先,在工作目录(可以找到AppxManifest.xml的文件夹)中创建一个子文件夹。这不是必要的,但更清洁。我把我的文件夹叫做'数据'。
接下来,您可以检查是否正确执行了此操作。在visual studio中打开项目,然后单击解决方案资源管理器中的“显示所有文件”按钮。
之后,您应该能够在解决方案资源管理器中看到新文件夹及其内容。您现在可以右键单击该文件夹并选择“包含在项目中”。
最后,您应该打开文件的属性(例如Data文件夹中的db.sqlite)并将构建操作设置为内容。
现在您可以使用以下代码连接到数据库:
public class Database
{
string path;
SQLite.Net.SQLiteConnection conn;
public Database()
{
path = Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, "Data", "Questions.sqlite");
conn = new SQLite.Net.SQLiteConnection(new
SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
}
}