gpt4 book ai didi

sqlite - 如何在 UWP 中写入只读 sqlite 文件

转载 作者:行者123 更新时间:2023-12-02 06:40:12 25 4
gpt4 key购买 nike

所以我是 UWP 新手,在完成连接到 sqlite tutorial 后,我对代码进行了一些修改以尝试新事物。我没有在本地文件夹中创建并保存 sqlite 文件,而是将文件目录更改为安装位置,创建了一个文件夹“data”并在其中添加 sqlite 文件。此时您可以弄清楚我遇到了什么问题。我只能读取/选择表,但无法写入/插入、删除、更新数据库中的记录。我有点期待这个问题,并且我知道其中的原因。我想知道的是:

  • 我可以将安装位置中的只读 sqlite 文件更改为读写吗?如果可以请给我指路。
  • 将数据库文件保留在安装位置是否实用或好主意?或者最好将其保存在本地文件夹中。

这是我的代码:

对于mainpage.xaml

<GridView x:Name="gridView" BorderBrush="Blue" BorderThickness="2" HorizontalAlignment="Left" Margin="34,401,0,0" VerticalAlignment="Top" Height="287" Width="1219">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Test" x:Name="templateGrid">
<StackPanel x:Name="stackPanel" Orientation="Vertical" HorizontalAlignment="Center">
<StackPanel x:Name="stack2" Margin="20,20,0,0">
<TextBlock FontSize="18" Text="{x:Bind ID}" HorizontalAlignment="Center"></TextBlock>
<TextBlock FontSize="10" Text="{x:Bind Name}" HorizontalAlignment="Center"></TextBlock>
</StackPanel>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<TextBlock x:Name="textBlock" HorizontalAlignment="Left" Margin="10,112,0,0" TextWrapping="Wrap" Text="Name" FontSize="25" VerticalAlignment="Top"/>
<TextBox x:Name="textBox" HorizontalAlignment="Left" Margin="132,112,0,0" FontSize="25" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="328"/>
<Button x:Name="button2" Content="Add" Click="button2_Click" HorizontalAlignment="Left" Margin="516,125,0,0" VerticalAlignment="Top"/>

对于后面的代码:

SQLite.Net.SQLiteConnection conn;
public MainPage()
{
this.InitializeComponent();
string path = Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, "data", "librarydatatbase.db");
conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
List<Test> Records = conn.Query<Test>(@"select * from Test");
gridView.ItemsSource = Records;
}

private void button2_Click(object sender, RoutedEventArgs e)
{
conn.Execute("insert into Test (Name) values (?)", textBox.Text.ToString());
List<Test> Records = conn.Query<Test>(@"select * from Test");
gridView.ItemsSource = Records;
}

对于sqlite:

create table Test
(
ID integer primary key autoincrement,
Name nvarchar(25)
);

insert into Test (Name) values ("Test value 1")

我收到的错误:

An exception of type 'SQLite.Net.SQLiteException' occurred in SQLite.Net.dll but was not handled in user code

Additional information: ReadOnly

提前致谢。

最佳答案

应用程序的安装目录是只读位置(请参阅 File access permissions )。它用于应用程序代码和 Assets 。

如果您需要对数据库进行写访问,则无法将其放置在应用程序的安装目录中。

关于sqlite - 如何在 UWP 中写入只读 sqlite 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41430350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com