当前位置:  开发笔记 > 编程语言 > 正文

SQLite + SpatiaLite问题

如何解决《SQLite+SpatiaLite问题》经验,为你挑选了1个好方法。

我正在尝试使用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();
    }
    ...

从这个链接我得到的印象应该工作.

提前致谢



1> Igor Brejc..:

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

libproj-0.dll

libgeos-3-1-1.dll

libgeos_c-1.DLL

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

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

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有