如何在UWP项目中使用预先设计的SQLite?
我有一个来自另一个项目的SQLite数据库,我想在UWP应用程序中使用它。但是我不知道如何将这个数据库导入到项目中 我可以创建一个新的数据库并使用它,但我不知道如何从项目中复制数据库文件。我使用SQLite.Net-PCL nuget包 对于如何访问现有文件,所有应用程序都可以访问两个位置。详情请参阅 一个是如何在UWP项目中使用预先设计的SQLite?,sqlite,uwp,windows-10-universal,Sqlite,Uwp,Windows 10 Universal,我有一个来自另一个项目的SQLite数据库,我想在UWP应用程序中使用它。但是我不知道如何将这个数据库导入到项目中 我可以创建一个新的数据库并使用它,但我不知道如何从项目中复制数据库文件。我使用SQLite.Net-PCL nuget包 对于如何访问现有文件,所有应用程序都可以访问两个位置。详情请参阅 一个是应用程序安装目录。正如@Henk Holterman所说,您可以通过右键单击一个文件夹并选择Add->Existing item将现有数据库文件添加到项目中,从而将现有数据库文件导入到项目中
应用程序安装目录
。正如@Henk Holterman所说,您可以通过右键单击一个文件夹并选择Add->Existing item将现有数据库文件添加到项目中,从而将现有数据库文件导入到项目中。请注意,文件的生成操作
属性需要设置为内容
。详情请参见下图
假设您已经在资产文件夹中添加了一个数据库文件Sun.db
,现在您可以通过以下代码连接到它(使用SQLite.Net-PCL Nuget包)
但是这个文件夹是只读的。另一个位置是可以读/写的应用程序数据位置
。您可以将数据库文件从安装目录复制到应用程序数据目录以供使用。下面的代码示例用于连接本地文件夹中的数据库文件
StorageFile file;
try
{
file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Sun.db");
}
catch
{
StorageFile Importedfile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Sun.db"));
file = await Importedfile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder);
}
path = file.Path;
using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path))
{
conn.CreateTable<User>();
}
StorageFile;
尝试
{
file=wait Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(“Sun.db”);
}
抓住
{
StorageFile Importedfile=等待StorageFile.GetFileFromApplicationUrisync(新Uri(“ms”)-appx:///Assets/Sun.db"));
file=wait Importedfile.copyanc(Windows.Storage.ApplicationData.Current.LocalFolder);
}
path=file.path;
使用(SQLite.Net.SQLiteConnection conn=new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(),path))
{
conn.CreateTable();
}
请仔细阅读。@HenkHolterman:就像许多其他问题一样,这些问题因过于宽泛而被投票关闭,尽管它们也是可以回答的。这个问题缺乏重点。OP对哪一部分有困难?他们观察到了什么症状?他们只是复制文件有困难吗?将it集成到构建过程中的问题?是否需要一些架构更新?是应该复制字符编码,还是应该切换到其他编码?所有这些问题本身就是一个很好的问题。这篇文章没有问一个问题。你已经知道如何在通用应用程序中使用SQlite,但不知道如何复制数据库文件吗?您想使用SQLite的哪个nuget包?或者实际上你只有一个数据库文件,你想知道其余的吗?@Sunteen是的,我知道!!!我可以创建一个新的数据库并使用它,但我不知道如何从项目中复制数据库文件。我使用来自SQLite.Net-PCL的nuget软件包,提前感谢
StorageFile file;
try
{
file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Sun.db");
}
catch
{
StorageFile Importedfile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Sun.db"));
file = await Importedfile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder);
}
path = file.Path;
using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path))
{
conn.CreateTable<User>();
}