首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows 10 removableStorage SQLite数据库

Windows 10 removableStorage SQLite数据库
EN

Stack Overflow用户
提问于 2015-06-26 00:12:52
回答 1查看 507关注 0票数 0

我正在尝试创建一个外部sqlite数据库,我跟踪并测试了可移动存储中的文本文件并工作。然后我尝试在removable Storage中创建一个数据库:

代码语言:javascript
复制
public static async Task<String> CreateDatabase(string name)
    {
        var folder = await FindRemovableStorage();
        if (folder != null)
        {
            var file = await folder.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting);
            if(file!=null)
            {
                var ret = $"{folder.Name}{file.Name}";
                return ret;
            }
        }
        return null;

    }

public async void ThirdCase()
    {
        var path =await DataLoggerService.CreateDatabase("db.dat");

        var connection = new SQLite.Net.SQLiteConnection(new SQLitePlatformWinRT(), path); //Cannot Open

    }

我正在台式机上测试,并返回CannotOpen。有没有人从典型的本地文件夹创建了一个数据库?

我在这里所做的更多细节:datalogger

当我完成后,我想在Raspberry Pi中实现,理论上Windows IoT的代码是相同的,或者SQLitePlatformWinRT中有什么变化吗?

版本:更多分析:

我已经测试了一个典型的数据库,它的工作方式非常出色:

代码语言:javascript
复制
Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.dat");

我想要在外部存储中创建数据库,为此我需要添加以下步骤:

1.-添加使用removablestorage的功能。2.-添加文件类型关联,以便有权管理此类文件

(详情请访问:http://expediteapps.com/blog/data-logger-with-windows-10-iot-in-progress/)

因此,我将路径更改为可移动存储路径,如“E:\db.dat”,它总是告诉CannotOpen。

它到达的SQLite库PCL如下:

SQLiteApiWinRT.cs

代码语言:javascript
复制
public Result Open(byte[] filename, out IDbHandle db, int flags, IntPtr zvfs)
{
    Sqlite3DatabaseHandle internalDbHandle;
    var ret = (Result)SQLite3.Open(filename, out internalDbHandle, flags, zvfs);
    db = new DbHandle(internalDbHandle);
    return ret;
}

Open指的是

代码语言:javascript
复制
[DllImport("sqlite3", EntryPoint = "sqlite3_open_v2", CallingConvention = CallingConvention.Cdecl)]

公共静态外部结果打开(byte[]文件名,out IntPtr db,int标志,IntPtr zvfs);

我使用的是:

代码语言:javascript
复制
SQLite.UAP.2015, Version=3.8.10

更多版本:

我已经测试了这个库https://www.nuget.org/packages/SQLitePortable/,并且在相同的错误中完成了测试,所以它是内部的。

这就是路的尽头,有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-15 16:14:15

既然你要求实现RaspberryPi 3 Windows10 IoT SQLite,下面是我执行的步骤:(Visual Studio 2015社区)

  1. download:.vsix package for Universal Windows Platform从sqlite页面
  2. 从Visual Studio中的下载文件夹
  3. 安装程序包转到工具-> NuGet程序包管理器->程序包管理器控制台并键入: required Reference (右键鼠标按钮-> Add Reference->通用Windows -> Extensions)

在这里,我选择了以下内容:

适用于通用Windows平台应用程序的

  • Microsoft Visual C++ 2013运行时软件包
    • 通用Windows Platform
    • Visual C++ 2015运行时适用于通用Windows平台应用程序
    • Windows IoT Extensions for UWP (因为我使用的是带有GPIO的RPi 3)

基本上,我遵循了chrisbriggsy steps,并不得不添加更多的资源,因为SQLite不工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31055530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档