转载自: https://www.cnblogs.com/jin-/p/8143457.html

之所以要做这个笔记,是因为在.NET中使用System.Data.SQLite的时候,遇到了些问题,这些问题是相对于引用其他dll没有遇到过的,所以作个笔记,记录一下。

简单起见,首先建立一个控制台项目,这肯定是.NET4.5以上的版本了,我用的是vs2017,其他版本的vs在引用System.Data.SQLite的时候有没有问题,这个就不得而知了。

首先还是按照以往使用第三方dll文件(指是在引用管理器中搜索不到的dll)的思路,在项目文件夹下面建立一个文件夹dll,将System.Data.SQLite.dll放进去(前提是保证下载的dll是正确的版本),然后

在项目中添加这个dll的引用。然后在项目的main函数中粘贴以下代码,这里只是为了能正常使用SQLite,所以代码设计的比较简单,当然代码也是网上找的

SQLiteConnection conn = null;  string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";  conn = new SQLiteConnection(dbPath);//创建数据库实例,指定文件位置  conn.Open();//打开数据库,若文件不存在会自动创建  string sql = "CREATE TABLE IF NOT EXISTS student(id integer, name varchar(20), sex varchar(2));";//建表语句  SQLiteCommand cmdCreateTable = new SQLiteCommand(sql, conn);  cmdCreateTable.ExecuteNonQuery();//如果表不存在,创建数据表  SQLiteCommand cmdInsert = new SQLiteCommand(conn);  cmdInsert.CommandText = "INSERT INTO student VALUES(1, '小红', '男')";//插入几条数据  cmdInsert.ExecuteNonQuery();  cmdInsert.CommandText = "INSERT INTO student VALUES(2, '小李', '女')";  cmdInsert.ExecuteNonQuery();  cmdInsert.CommandText = "INSERT INTO student VALUES(3, '小明', '男')";  cmdInsert.ExecuteNonQuery();  conn.Close();

然后开始跑程序,出现了第一个问题:异常来自 HRESULT:0x8007000B

网上搜索了一下解决方案,都说的是将项目属性里面的生成里面的平台目标改成x86或x64。再啰嗦一句,我的电脑系统是Windows server 2012 r2 标准版,妥妥的64位操作系统。

这里我选择的是x86,然后继续跑程序,结果还是出现刚才的问题。然后选择x64,跑程序。好了,这回出现新问题了:异常来自 HRESULT:0x8007007E

根据提示,说是没有SQLite.Interop.dll文件,于是将这个文件复制到刚才建立的dll文件夹中,并引进项目,结果又出问题了。不就是引用个第三方的dll文件吗,有必要出现那么多问题吗,内心已经很崩溃。

这个问题,我确实没办法了,网上也找不到合适的解决方案(主要是有些解决办法太麻烦,看都懒得看了)。怎么办呢,遇到问题总要解决吧,作为一个专业的程序员,码农,遇到问题必须有探索的精神,

不能指望领导,不能指望同事,想想自己还没赚到足够的钱,娶到白富美,走上人生的巅峰,想想家里的父母.......开始胡思乱想了。想着想着,无意中打开了项目的bin文件夹里面的Debug文件夹,哎哟我

去,发现了新大陆了,这个dll怎么出现在这里,我明明是放在dll文件夹里面的。再想到刚才的错误不是说没有SQLite.Interop.dll文件吗,那我把SQLite.Interop.dll文件也放到这里看看

再跑程序,哎哟我去,奇迹出现了,程序跑起来了,成功了,debug文件夹下,出现了test.db文件了,这不就是梦中情人白富美吗,总算出现了。

为了验证一下是否真的把数据写进去了,我简单些了个查询函数看了一下,果然没问题

总结:1、下载正确版本的SQLite,主要是32位还是64位

    2、将SQLite.Interop.dll和System.Data.SQLite.dll放到bin文件夹的debug文件夹下,然后只需引用System.Data.SQLite.dll就好

       3、将项目属性里面的生成里面的平台目标改成x64,当然这是因为我电脑是64位的,如果是32位电脑也许不用这步操作了。

一般来说,这样的对数据库的操作的代码,都是写在类库里面的,这里就有个地方需要注意了,在编写对SQLite使用的类库的时候,在类库中只需引用System.Data.SQLite.dll,文件放在什么地方无所谓,

只要能引用就行,然后编译通过后,在引用这个类库的项目里面,记得将SQLite.Interop.dll放到bin文件夹下面的debug文件夹,而且引用的项目的属性里面的平台目标记得改成x64。而类库没有这个要求。

.net引用System.Data.SQLite操作SQLite相关推荐

  1. C#------引用System.Data.Entity后DbContext依然无法继承解决方法

    C#------引用System.Data.Entity后DbContext依然无法继承解决方法 参考文章: (1)C#------引用System.Data.Entity后DbContext依然无法 ...

  2. C#使用System.Data.SQLite操作SQLite

    使用System.Data.SQLite 下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 得到Sy ...

  3. c# 未能加载文件或程序集mysql.data,SQLite的C#,.NET应用自适应32位/64位系统(未能加载文件或程序集“System.Data.SQLite.dll)...

    SQLite异常报错 其他信息: 未能加载文件或程序集"System.Data.SQLite, Version=1.0.103.0, Culture=neutral, PublicKeyTo ...

  4. C#操作Sqlite快速入门及相关工具收集

    Sqlite不需要安装即可使用. Sqlite是不是那个System.Data.SQLite.DLL临时创建了数据库引擎? 1.新建一个WinForm项目,引用System.Data.SQLite.D ...

  5. 手把手教你使用C#操作SQLite数据库,新建数据库,创建表,插入,查询,删除,运算符,like...

    目录: 一.新建项目,添加引用 二.创建数据库 三.创建表 四.插入数据  五.查询数据  六.删除数据  七.运算符 八.like语句 我的环境配置:windows 64,VS,SQLite(点击下 ...

  6. 手把手教你使用C#操作SQLite数据库,新建数据库,创建表,插入,查询,删除,运算符,like(持续更新)...

     有问题欢迎留言!!!  目录: 一.新建项目,添加引用 二.创建数据库 三.创建表 四.插入数据  五.查询数据  六.删除数据  七.运算符 八.like语句 我的环境配置:windows 64, ...

  7. C#操作Sqlite快速入门及相关工具收集(连接串管用)

    Sqlite不需要安装即可使用. Sqlite是不是那个System.Data.SQLite.DLL临时创建了数据库引擎? 1.新建一个WinForm项目,引用System.Data.SQLite.D ...

  8. C# 一个操作Oracle的简易工具类(通过System.Data.OracleClient)

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于本文 运行本文中的代码,需要 1)需要手动添加引用System.Data.OracleClient 在代码最前面加入这 ...

  9. System.IO.FileNotFoundException: Could not load file or assembly ‘System.Data.SQLite.dll‘ or one of

    软件的安装目录下明明存在类库System.Data.SQLite.dll,但程序调用该文件操作SQLite数据库时,却报错,如下图所示: 怎么都无法识别到与SQLite数据库相关的文件.走了很多弯路, ...

最新文章

  1. 全网唯一秃头数据集:20 万张人像,网罗各类秃头
  2. 突然而降的福利,看看你砸到没...
  3. 算法学习笔记2022.1.11
  4. java基本类型的默认值及其取值范围
  5. 转:Fiddler抓包工具总结
  6. redis的密码验证,及哨兵的相关配置
  7. 一起学习C语言:函数(一)
  8. nmon在linux系统中的应用
  9. python是什么专业学的-当我们学Python时,我们学什么?
  10. 微软私有云分享(R2)24 审核WDS部署
  11. vb调用摄像头实现拍照源码_牛逼!终于搞了一个高大上的人脸识别登录玩玩(附源码),出乎意料的简单......
  12. 医疗器械软件网络安全法规和标准概述(本文末付本文提到的所有标准)
  13. 1-7 Burpsuite 爬虫介绍
  14. 实操:WDS安装win系统
  15. jcaptcha配置验证码
  16. 0003 渗透测试标准
  17. 为什么在我眼里你是一只傻逼——傻逼“常所用”句型之(3)——“没看过”“但是其中必定”...
  18. 修改源码刷步数、年会摇一摇数据
  19. python提取word目录_python批量提取word内信息
  20. 秒杀系统的设计五大原则

热门文章

  1. 关于使用旋转四元数绕轴旋转θ角度时,使用参数是θ/2的理解
  2. 3组现代软件工程第三次作业
  3. java为窗体添加滚动条
  4. 理解JavaScript面向对象的思路
  5. 用C语言打开文件的几种方式及区别
  6. 13:TextView#setText、DalvikART虚拟机
  7. 进程池的同步方法 pool.apply
  8. 简单实现迷你Vue框架
  9. CentOS 6.5 源码安装 mysql 5.6
  10. MySQL中优化sql语句查询常用的30种方法