Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在UWP项目中使用预先设计的SQLite?_Sqlite_Uwp_Windows 10 Universal - Fatal编程技术网

如何在UWP项目中使用预先设计的SQLite?

如何在UWP项目中使用预先设计的SQLite?,sqlite,uwp,windows-10-universal,Sqlite,Uwp,Windows 10 Universal,我有一个来自另一个项目的SQLite数据库,我想在UWP应用程序中使用它。但是我不知道如何将这个数据库导入到项目中 我可以创建一个新的数据库并使用它,但我不知道如何从项目中复制数据库文件。我使用SQLite.Net-PCL nuget包 对于如何访问现有文件,所有应用程序都可以访问两个位置。详情请参阅 一个是应用程序安装目录。正如@Henk Holterman所说,您可以通过右键单击一个文件夹并选择Add->Existing item将现有数据库文件添加到项目中,从而将现有数据库文件导入到项目中

我有一个来自另一个项目的SQLite数据库,我想在UWP应用程序中使用它。但是我不知道如何将这个数据库导入到项目中

我可以创建一个新的数据库并使用它,但我不知道如何从项目中复制数据库文件。我使用SQLite.Net-PCL nuget包

对于如何访问现有文件,所有应用程序都可以访问两个位置。详情请参阅

一个是
应用程序安装目录
。正如@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>();
  }