SQLite + SpatiaLite 问题

发布于 2024-08-07 10:27:00 字数 867 浏览 3 评论 0原文

我正在尝试使用 System.Data.SQLite 提供程序从 C# 访问 SpatiaLite。当我尝试加载 SpatiaLite 扩展时,我总是收到错误

System.Data.SQLite.SQLiteException: SQLite error
The specified module could not be found.

,即使 SpatiaLite 的 dll 已被复制到 bin 目录中。我什至尝试指定dll的绝对路径,但无济于事。

这是代码:

string connectionString = @"Data Source=D:\MyStuff\projects\OsmUtils\trunk\Data\Samples\DB\osm.sqlite";
using (SQLiteConnection connection = new SQLiteConnection (connectionString))
{
    connection.Open();

    using (SQLiteCommand command = connection.CreateCommand())
    {
        command.CommandText = @"SELECT load_extension('libspatialite-1.dll');";
        command.ExecuteScalar();
    }
    ...

此链接我得到的印象应该是工作。

提前致谢

I'm trying to access a SpatiaLite from C# using System.Data.SQLite provider. When I try to load the SpatiaLite extension, I always get the

System.Data.SQLite.SQLiteException: SQLite error
The specified module could not be found.

error, even though the spatialite's dll has been copied to the bin directory. I even tried specifying the absolute path to the dll, but to no avail.

Here's the code:

string connectionString = @"Data Source=D:\MyStuff\projects\OsmUtils\trunk\Data\Samples\DB\osm.sqlite";
using (SQLiteConnection connection = new SQLiteConnection (connectionString))
{
    connection.Open();

    using (SQLiteCommand command = connection.CreateCommand())
    {
        command.CommandText = @"SELECT load_extension('libspatialite-1.dll');";
        command.ExecuteScalar();
    }
    ...

From this link I get the impression this should work.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷︶言冷语的世界 2024-08-14 10:27:00

多亏了 sqlite3.exe 命令行工具,我发现运行它还需要一些额外的 DLL:

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll

您可以找到这些在SpatiaLite 的下载页面上。只需将它们复制到 bin 目录即可。

更新:需要一个额外的 dll 是libiconv2.dll

Well thanks to sqlite3.exe command line tool, I've found out that there are some additional DLLs needed for this to run:

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll

You can find these on SpatiaLite's download page. Just copy them to the bin directory.

UPDATE: one additional dll needed is libiconv2.dll

关于从前 2024-08-14 10:27:00

我在Java中遇到了完全相同的问题。我为所有依赖的 DLL 调用了 System.load(),一切都运行得非常顺利!

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll
  • libiconv2.dll
  • libcharset1.dll

I had the exact same problem in Java. I called System.load() for all the dependent DLLs and everything worked like a champ!

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll
  • libiconv2.dll
  • libcharset1.dll
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文