从HoloLens 2访问计算机上的数据库文件

问题描述

HoloLens文件访问

要点:

  • HoloLens 2通过数据线插入计算机的设备
  • 位于Environment.SpecialFolder.CommonApplicationData(C:/程序文件)下的该计算机上的现有SQLite DB
  • 不幸的是,由于其他要求,该文件必须位于C:/ Program Files中,并且HL2可以访问该文件。
  • HL2应用程序是使用Unity构建的,但是依赖于使用EFCore 3.1.4的私有DLL。此DLL有助于数据库操作并使用DbContext等。

当前,此DLL可与其他实际上已运行的应用程序一起使用 在客户端计算机(计算机)上运行,因此它们没有问题 尽可能通过文件路径连接到数据库。

我完成的研究

主要要求/问题:

**

如何使用现有的DLL实现(下面的示例代码)来 实例化与计算机上驻留的数据库文件的连接 来自HoloLens ?此文件存储在C:/ Program Files /...

**

随附的现有代码示例

// <summary>
// Helper function to create a SQLite Database Connection
// </summary>
// <param name="dbPath">Path to the SQLite Database file</param>
// <param name="password">Password to Database</param>
public static SqliteConnection CreateDBConnection(string dbPath,string password)
{
    // Create path if it doesn't exist
    string path = Path.GetDirectoryName(dbPath);
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path);
    }

    // Check if db file exists
    if (!File.Exists(dbPath))
    {
        FileStream stream = File.Create(dbPath);
        stream.Close();
    }

    SqliteConnection connection = new SqliteConnection("DataSource=" + dbPath + CommonStrings.DB_Semicolon);
    connection.Open();
    using (SqliteCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT quote($password);";
        command.Parameters.AddWithValue("$password",password);
        string escapedPassword = (string)command.ExecuteScalar(); // Protects against SQL injection

        command.Parameters.Clear();
        command.CommandText = "PRAGMA key = " + escapedPassword + CommonStrings.DB_Semicolon;
        command.ExecuteNonQuery();
    }

    return connection;
}

解决方法

我没有完全理解您的要求。据我了解,您想使用网络协议堆栈进行从HL到PC的USB-over-IP连接。现在尚未实现。

尤其是,如果没有PC上运行的服务器,就无法从Hololens访问PC。服务器应处理特定的USB端口命令以打开网络连接。在另一方,HL应该有一个客户端,可以通过USB对网络协议进行编码。

显然,这不是一个简单的方法。我建议打开从HL到PC的普通TCP / IP连接。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...