문제

System.data.sqlite 제공 업체를 사용하여 C#에서 공간에 액세스하려고합니다. Spatialite Extension을로드하려고 할 때는 항상

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();
    }
    ...

에서 이 링크 나는 이것이 효과가있는 인상을 얻는다.

미리 감사드립니다

도움이 되었습니까?

해결책

sqlite3.exe 명령 줄 도구 덕분에 이것을 실행하는 데 필요한 추가 DLL이 있음을 알았습니다.

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

당신은 이것을 찾을 수 있습니다 Spatialite의 다운로드 페이지. 빈 디렉토리에 복사하십시오.

업데이트: 추가 DLL이 필요합니다 libiconv2.dll

다른 팁

나는 똑같은 문제가 있었다 자바. 나는 전화했다 System.load () 모든 종속 DLL과 모든 것이 챔피언처럼 작동했습니다!

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll
  • libiconv2.dll
  • libcharset1.dll
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top