如何在.NET中为SQLite/SpatiaLite设置SPATIALITE_SECURITY环境变量?

问题描述 投票:0回答:1

我正在开发一个 .NET 应用程序,其中使用 SQLite 和 SpatiaLite 进行空间数据处理。要启用所有 SpatiaLite 功能,我需要将 SPATIALITE_SECURITY 环境变量显式设置为relaxed。

但是,我不确定如何在 .NET 应用程序中设置此环境变量,以便它正确应用于 SQLite/SpatiaLite。

有人可以指导我如何在 .NET 中正确执行此操作吗?

这是我到目前为止所尝试过的:

using (var connection = new SqliteConnection($"Data Source={_dbPath}")) 
{ 
    connection.Open();

    connection.EnableExtensions(true);

    SqliteCommand? command = connection.CreateCommand();

    // Load SpatiaLite extension
    command.CommandText = "SELECT load_extension('mod_spatialite')";
    command.ExecuteNonQuery();

    //TRIED THIS BUT IT IS NOT WORKING
    command.CommandText = "SET  SPATIALITE_SECURITY='relaxed'";
    command.ExecuteNonQuery();
}
c# .net sqlite maui spatialite
1个回答
0
投票

SPATIALITE_SECURITY
是一个环境变量,所以你应该将其设置为一个。您可以尝试对当前进程使用
Environment.SetEnvironmentVariable

Environment.SetEnvironmentVariable("SPATIALITE_SECURITY", "relaxed");

但可以说更正确的方法是使用运行代码的计算机上操作系统提供的方法进行全局设置。

© www.soinside.com 2019 - 2024. All rights reserved.