sqlite使用问题 返回

SqlSugar
8 189

English Message : Connection open error . 无法在 DLL“SQLite.Interop.dll”中找到名为“sqlite3_open_interop”的入口点。

Chinese Message :  连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,实在找不到原因请先Google错误信息:无法在 DLL“SQLite.Interop.dll”中找到名为“sqlite3_open_interop”的入口点。.

请问下 是如何使用sqlite的 nuget的包有
1. SqlSugar  版本5.0.0.6 
2. System.Data.SQLite 版本 1.0.114.0


目前我选择平台也解决不了问题 x86和x64


热忱回答8

  • 文档 sqlite 有新人包

    0 回复
  • 我引用完了之后在目录下有生成x86和x64的文件夹 里面有SQLite.Interop.dll这个文件 难道新人包和文件和我引用的包有区别吗?

    0 回复
  • 1.png

    0 回复
  • 找到问题了 我把debug目录下的SQLite.Interop.dll删除掉就没有问题了 不知道这个是啥时候在根目录下的

    0 回复
  • 您好 大佬  还有一个问题请教下就是 我执行sql语句要比使用对象执行要快这是为什么,

    同样是往db中写数据(2万多条数据) 一个是使用SQL语句执行的事务(拼接的sql语句insert into) 差不多5-6秒的样子

    还有一个也是使用的事务只不过是使用insertable批量写入集合中的数据  需要花费25-30秒的样子

    0 回复
  • 还有一个问题就是如果数据量超过20万 好像执行不进数据库(这个和我本地的内存应该没有多大关系的吧)

    0 回复
  • @仲夏夜之梦:用分页插入试试 文档有介绍

    0 回复
  • 好的 使用分页会更慢 如果数量有20多万 是真的慢  我还是使用原始的拼接sql执行的 20多万条数据30秒左右全部执行完成!
    你们那边的底层应该也是把对象集合转成sql执行的吧

    还有一个问题 就是关于引用sqlite库的问题 
    在sqlitesugar这nuget包中 如果使用了

      using (SqlSugarClient db = new SqlSugarClient(ConnectionString))

     {
          db.GetConnection().Dispose();//如果我后续需要对此db文件做操作必须使用该方法 难道using不是释放链接的吗?还是只是释放了SqlSugarClient 这个对象的资源空间 麻烦大佬 给个合理的解释 多谢
    }

    如果没有这句话 会导致文件被占用 真的坑 直接使用using不是可以直接dispose吗?

    可能使用using只是把sqlsugar的对象释放了 但是sqlite的连接对象还是存在的 这样就会导致后续对这个文件操作(上传文件)时会报错

    错误信息: "xxxx.db”正由另一进程使用,因此该进程无法访问此文件。

    只需找到对应的sqlite连接对象 使用dispose释放连接对象即可


    0 回复