0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SQLite数据库多平台应用及常见错误分析有哪些

汽车电子技术 来源:dotNet工控上位机 作者:新阁教育-付工 2023-02-22 15:25 次阅读

SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。SQLite是世界上最广泛部署的数据库引擎之一。SQLite源代码开放,没有授权限制。正是因为其免费、轻巧、绿色等特点,因此SQLite的应用范围很广,在各种软件上都有应用,其中不乏Adobe、Apple、Firefox,甚至包括google、Microsoft、SUN这样的企业。在上位机项目开发中。SQLite的应用也很广泛,今天主要跟大家分享一下SQLite的部署、应用及常见错误分析。

图片

1 数据库部署

SQLite数据库和其他数据库相比,一个很大的优势在于免部署,也就意味着不需要安装即可使用,但是需要同样也需要数据库客户端管理软件的支持,SQLite的客户端软件很多,包含SQLite Database Browser、SQLite Administrator、SQLite Expert Personal、SQLite Studio等,个人比较喜欢使用SQLite Studio,需要的童鞋可以关注本公众号,在后台发送关键词 **015 **即可获取。为了后续介绍SQLite数据应用,首先要准备好一个数据库及数据表,通过SQLite可以很方便的进行创建,创建完成后会生成一个文件。

图片

如上图所示,创建了一个SQLite数据库,名称为SQLiteDemo,在数据库中创建了一个数据表,名称为Student,Student数据表下会有四个字段,分别为StudentID、StudentName、StudentGender及StudentClass,并向其中插入了两条数据。

2 数据库应用

首先创建一个Windows应用程序,窗体中简单的拖放两个控件,一个查询按钮,一个显示控件DataGridView,我们所要做的就是基于SQLite数据库实现数据的查询。如下图所示:

图片

众所周知,Windows开发会存在平台版本的问题,一般情况下,我们使用的都是Any CPU,Any CPU默认是32位目标平台,但是有的时候我们可能需要在64位平台上使用SQLite,今天着重讲述一下如何在各个平台下实现SQLite的应用。

2.1 默认Any CPU

一般情况下,我们的项目都是使用Any CPU作为目标平台,默认为32位。如果想实现SQLite数据库应用,首先要准备一些类库,因为SQLite并不是微软的数据库,所以Windows系统是没有SQLite类库的,SQLite类库会区分32位和64位,类库获取方式,公众号后台回复: **261 ** ,如下图所示:

图片

  • 首先将公用的类库复制到Debug根目录下,然后手动添加下SQLiteHelper,SQLiteHelper是一个封装好的SQLite数据库操作类,如下图所示,添加之后,会有错误提示,将System.Data.SQLite.dll添加引用即可消除错误。

图片

  • 设置连接字符串:SQLite连接字符串指向的是数据库文件,所以这里首先要之前创建好的数据文件复制到项目中来,直接放到Debug路径下,然后在窗体运行初始化时,设置一下连接字符串,连接字符串格式如下:

图片

  • 在查询按钮下,写一段简单的查询代码,如下图所示:

图片

  • 运行程序,执行查询事件,代码会报错,如下图所示:

图片

这个错误,很多童鞋经常会遇到,错误提示很明显,就是提示缺少指定模块,模块名称为SQLite.Interop.dll,如果大家还有印象的话,这个dll是在SQLite类库中,32位和64位专有的文件夹中,如下图所示,因此,我们只需要将x86文件夹下的这两个文件复制到Debug目录下,这里一定要复制x86文件夹下的,因为Any CPU默认是x86平台。

图片

  • 复制完成后,再次点击查询,结果如下:

图片

2.2 64位平台

当我们使用64位平台时,首先将目标平台改成x64,如下图所示:

图片

这时候,运行界面,点击查询,会出现以下错误:

图片

对于这个错误,我们将x64文件夹下的两个文件复制到Debug目录下,然后替换一下,再执行查询,实现最终的数据读取:

图片

当我们同时将下图中的目标平台修改为x64时,再重新生成,会在bin文件夹下重新产生一个x64的文件夹,这时候所有的生成内容都将存储在x64文件夹下,与之前的Debug无关。

图片

图片这时候再重新生成,运行界面,点击查询,又会出现下面的错误:

图片

再次遇到这样的问题,我们应该很清楚,就是需要将只需要将类库中x64文件夹下的这两个文件复制到Bin目录下x64文件夹下的Debug文件夹中,同时还需要将数据库复制进去。重新生成,点击查询,结果如下:

图片

2.3 x86平台

当我们将下图中的目标平台修改为x86时,再重新生成,同理会在bin文件夹下重新产生一个x86的文件夹,这时候所有的生成内容都将存储在x86文件夹下,与之前的Debug无关,这里的解决方案与上述2.2描述类似,因此不再作赘述。

图片

3 整体总结

通过针对各个平台的说明,我们发现SQLite使用中常见的错误无非就那么几种,而解决方案也是差不多,始终需要遵从一个原则,保证我们需要的第三方dll放在项目生成的路径下。当我们不清楚项目生成的路径时,可以通过清理解决方案,再重新生成解决方案,观察项目exe的修改时间,是否为当前最新的时间,从而判断该路径是否为项目生成路径。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL数据库
    +关注

    关注

    0

    文章

    24

    浏览量

    6832
  • SQlite
    +关注

    关注

    0

    文章

    78

    浏览量

    15763
  • 软件库
    +关注

    关注

    0

    文章

    13

    浏览量

    7712
收藏 人收藏

    评论

    相关推荐

    labview连接sqlite3数据库

    labview利用“调用库函数节点”通过“动态链接(DLL)”操作sqlite3数据库创建数据库,创建表格,插入数据,查询等操作。这个程序
    发表于 07-19 16:04

    Wince系统基于数据库Sqlite的应用

    觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发
    发表于 07-18 11:31

    关于Lv与Sqlite数据库的通信

    大神做过Lv与Sqlite数据库的通信吗?谢谢了
    发表于 06-22 22:01

    如何用labview创建SQLite数据库

    如何用labview创建SQLite数据库,谢谢
    发表于 01-22 17:19

    LabVIEW访问SQLite数据库接口研究

    【摘要】 本文介绍了LabVIEW环境下利用API技术访问开源数据库SQLite的方法,实现了可跨平台操作的数据库。采用此种方法完成了对过程控制中历史
    发表于 02-04 13:38

    请问怎么用labview调用SQLite数据库

    用labview调用SQLite数据库的时候,要用VI package manger安装程序什么才能成功调用?
    发表于 03-07 21:20

    嵌入式系统到底该选哪款数据库SQLite真的是最优解吗?

    的存储、查询、分析与计算提供一强大的工具,以解决流行的SQLite在该场景下的诸多不足,并且100%开源。与InfluxDB, OpenTSDB等其他专业时序数据库相比,除超强的插入、查询性能外
    发表于 02-11 11:02

    嵌入式数据库sqlite移植及使用的资料分享

    嵌入式数据库sqlite移植及使用一、实验目的二.实验内容三.预备知识四.实验设备及工具(包括软件调试工具)五.实验步骤5.1 移植嵌入式数据库 sqlite一、实验目的理解嵌入式软件
    发表于 10-28 09:48

    开放源码嵌入式数据库SQLite的相关资料下载

      本文转自:http://www.ibm.com/developerworks/cn/opensource/os-sqlite/  简介:自几十年前出现的商业应用程序以来,数据库就成为软件应用
    发表于 12-24 06:05

    Sqlite移动嵌入式数据库Sqlite的日常SQL操作语句是什么?

    Sqlite移动嵌入式数据库Sqlite的日常SQL操作语句是什么?
    发表于 12-27 07:37

    LabView中SQLite数据库怎样做附加数据库操作?

    如题,labView操作SQLite数据库数据放在两个不同的文件中,想要将另外一个数文件附加到主
    发表于 05-03 23:41

    个excel数据表 想导入鸿蒙数据库,求sqlite数据使用文档?

    个excel 数据表 想导入鸿蒙数据库, 求sqlite数据使用文档?
    发表于 06-09 10:10

    SQLite数据库的特点 SQLite数据库简单介绍

    SQLite数据库的特点 SQLite数据库简单介绍 SQLite数据库是一种轻型的嵌入式
    的头像 发表于 08-28 16:40 3649次阅读

    什么是Sqlite数据库

    立。Sqlite数据库的特点是占用空间小、运行速度快、使用简单等。Sqlite数据库被广泛应用于各种移动设备、嵌入式设备和桌面应用程序中。本文将详细介绍
    的头像 发表于 08-28 16:41 1521次阅读

    SQLite数据库能共享吗?

    个人电脑或移动设备上的单个用户。但是,SQLite数据库实际上是可以在多用户环境中使用的,只要它被正确地配置和管理。 在SQLite中,多用户共享数据库
    的头像 发表于 08-28 16:41 1908次阅读