Dav*_*nes 7 c# database sqlite uwp
问:我无法在Documents文件夹中打开SQLite数据库:
应用程序:通用Windows(10)平台
开发:C#,Visual Studio 2015
SQLite:使用SQLite.net
目标:Windows 10桌面和Windows 10手机
部署:从Visual Studio或Sideloaded(不需要存储部署)
using SQLite;
using SQLite;
using SQLite.Net;
using SQLite.Net.Async;
using SQLite.Net.Attributes
Run Code Online (Sandbox Code Playgroud)
打开并从项目中包含的数据库中读取内容:
using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection
(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), ".\\mydb.db3"))
{
//Read queries
}
Run Code Online (Sandbox Code Playgroud)
打开/创建和读/写数据库到apps工作区:
string path = Path.Combine
(Windows.Storage.ApplicationData.Current.LocalFolder.Path,"another.db3");
using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection
(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path))
{
//CRUD
}
Run Code Online (Sandbox Code Playgroud)
我使用FilePicker选择Documents或SD中的db
然后在尝试打开数据库连接时使用File.Path属性
Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync();
string path = File.Path;
Run Code Online (Sandbox Code Playgroud)
我尝试打开该连接时收到以下错误消息:
抛出异常:SQLite.Net.dll中的"SQLite.Net.SQLiteException"
SQLite-GetAllVendors:无法打开数据库文件:C:\ Users\me\Documents\another.db3(CannotOpen)
添加了SQLite .db和.db3文件关联.
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name=".db">
<uap:DisplayName>SqliteDB</uap:DisplayName>
<uap:EditFlags OpenIsSafe="true" />
<uap:SupportedFileTypes>
<uap:FileType>.db</uap:FileType>
<uap:FileType>.db3</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
Run Code Online (Sandbox Code Playgroud)
添加了相关功能
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="picturesLibrary" />
<uap:Capability Name="documentsLibrary" />
<uap:Capability Name="videosLibrary" />
<uap:Capability Name="userAccountInformation" />
<uap:Capability Name="removableStorage" />
<DeviceCapability Name="webcam" />
<DeviceCapability Name="location" />
</Capabilities>
Run Code Online (Sandbox Code Playgroud)
当然有一些方法可以在Documents或通过Windows(10)应用程序的记忆棒上打开SQLite数据库.
Thx提前
Rob*_*SFT 11
因为SQLite直接打开数据库文件而不是通过文件代理,所以它只能看到应用程序安装和应用程序数据中的数据库(应用程序具有分别读取和读取/写入的直接文件权限的目录).
更改此项将需要更新SQLite以使用来自文件代理对象(StorageFile和StorageFolder)的流来访问具有通过功能,选择器等授予的权限的位置.
| 归档时间: |
|
| 查看次数: |
3590 次 |
| 最近记录: |