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

    文章

    25

    浏览量

    6915
  • SQlite
    +关注

    关注

    0

    文章

    78

    浏览量

    15938
  • 软件库
    +关注

    关注

    0

    文章

    15

    浏览量

    7765
收藏 人收藏

    评论

    相关推荐

    玩转SQLite5:使用Python来读写数据库

    本篇介绍了如何使用**Python**语言来进行SQLite数据库的读写,在嵌入式式开发中,更多的是使用**C/C++**语言进行开发,因此,下篇我们介绍如何使用C语言来进行SQLite数据库
    的头像 发表于 09-25 08:51 1849次阅读
    玩转<b class='flag-5'>SQLite</b>5:使用Python来读写<b class='flag-5'>数据库</b>

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

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

    关于Lv与Sqlite数据库的通信

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

    LabVIEW访问SQLite数据库接口研究

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

    嵌入式数据库Sqlite移植教程

    嵌入式数据库Sqlite移植教程 sqlite-3.3.6编译安装与交叉编译全过程详细记录
    发表于 03-11 09:57 3719次阅读

    SQLite嵌入式数据库在Wince中的应用实例

    随着科学技术的发展,嵌入式系统成为了科技发展的主要领域, Linus和Wince是比较常见的嵌入式系统。嵌入式开发过程离不开数据库的应用,对于嵌入式数据库的选择是必要的。通常,嵌入式系统选择的
    发表于 10-23 16:05 0次下载
    <b class='flag-5'>SQLite</b>嵌入式<b class='flag-5'>数据库</b>在Wince中的应用实例

    怎么创建SQLite数据库

    大家好,今天给大家分享一篇如何创建SQLite数据库的文章。
    的头像 发表于 02-22 16:21 6017次阅读
    怎么创建<b class='flag-5'>SQLite</b><b class='flag-5'>数据库</b>

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

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

    如何创建一个Sqlite数据库

    如何创建一个Sqlite数据库Sqlite是一种轻量级、占用空间小、操作速度快的嵌入式数据库,使用它可以方便地存储和管理数据
    的头像 发表于 08-28 16:40 4460次阅读

    什么是Sqlite数据库

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

    SQLite数据库能加密吗

    SQLite数据库能加密吗  SQLite是一种以文件为基础的轻量级数据库管理系统,它被广泛应用在许多领域,例如移动设备应用程序、桌面应用程序、网络浏览器、机器人和嵌入式系统等。在许多
    的头像 发表于 08-28 16:41 3951次阅读

    SQLite数据库能共享吗?

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

    SQLite数据库与python的区别

    数据科学等方面。SQLite数据库和Python之间很多不同之处,下面将详细解析它们之间的区别。 1. 数据库类型
    的头像 发表于 08-28 16:41 862次阅读

    SQLite数据库增删改查

    SQLite数据库增删改查  SQLite是一种轻量级的RDBMS(关系型数据库管理系统),具有速度快、易用性高等优点。虽然SQLite
    的头像 发表于 08-28 17:09 1205次阅读

    SQLite数据库文件头部特征

    SQLite数据库文件头部特征 SQLite是一种轻量级关系型数据库管理系统,被广泛应用于移动设备、桌面应用程序和Web应用程序中。SQLite
    的头像 发表于 08-28 17:15 1065次阅读