一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SQLite數(shù)據(jù)庫(kù)多平臺(tái)應(yīng)用及常見錯(cuò)誤分析有哪些

汽車電子技術(shù) ? 來源:dotNet工控上位機(jī) ? 作者:新閣教育-付工 ? 2023-02-22 15:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SQLite是一個(gè)軟件庫(kù),實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫(kù)引擎。SQLite是世界上最廣泛部署的數(shù)據(jù)庫(kù)引擎之一。SQLite源代碼開放,沒有授權(quán)限制。正是因?yàn)槠涿赓M(fèi)、輕巧、綠色等特點(diǎn),因此SQLite的應(yīng)用范圍很廣,在各種軟件上都有應(yīng)用,其中不乏Adobe、Apple、Firefox,甚至包括google、Microsoft、SUN這樣的企業(yè)。在上位機(jī)項(xiàng)目開發(fā)中。SQLite的應(yīng)用也很廣泛,今天主要跟大家分享一下SQLite的部署、應(yīng)用及常見錯(cuò)誤分析。

圖片

1 數(shù)據(jù)庫(kù)部署

SQLite數(shù)據(jù)庫(kù)和其他數(shù)據(jù)庫(kù)相比,一個(gè)很大的優(yōu)勢(shì)在于免部署,也就意味著不需要安裝即可使用,但是需要同樣也需要數(shù)據(jù)庫(kù)客戶端管理軟件的支持,SQLite的客戶端軟件很多,包含SQLite Database Browser、SQLite Administrator、SQLite Expert Personal、SQLite Studio等,個(gè)人比較喜歡使用SQLite Studio,需要的童鞋可以關(guān)注本公眾號(hào),在后臺(tái)發(fā)送關(guān)鍵詞 **015 **即可獲取。為了后續(xù)介紹SQLite數(shù)據(jù)應(yīng)用,首先要準(zhǔn)備好一個(gè)數(shù)據(jù)庫(kù)及數(shù)據(jù)表,通過SQLite可以很方便的進(jìn)行創(chuàng)建,創(chuàng)建完成后會(huì)生成一個(gè)文件。

圖片

如上圖所示,創(chuàng)建了一個(gè)SQLite數(shù)據(jù)庫(kù),名稱為SQLiteDemo,在數(shù)據(jù)庫(kù)中創(chuàng)建了一個(gè)數(shù)據(jù)表,名稱為Student,Student數(shù)據(jù)表下會(huì)有四個(gè)字段,分別為StudentID、StudentName、StudentGender及StudentClass,并向其中插入了兩條數(shù)據(jù)。

2 數(shù)據(jù)庫(kù)應(yīng)用

首先創(chuàng)建一個(gè)Windows應(yīng)用程序,窗體中簡(jiǎn)單的拖放兩個(gè)控件,一個(gè)查詢按鈕,一個(gè)顯示控件DataGridView,我們所要做的就是基于SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)的查詢。如下圖所示:

圖片

眾所周知,Windows開發(fā)會(huì)存在平臺(tái)版本的問題,一般情況下,我們使用的都是Any CPU,Any CPU默認(rèn)是32位目標(biāo)平臺(tái),但是有的時(shí)候我們可能需要在64位平臺(tái)上使用SQLite,今天著重講述一下如何在各個(gè)平臺(tái)下實(shí)現(xiàn)SQLite的應(yīng)用。

2.1 默認(rèn)Any CPU

一般情況下,我們的項(xiàng)目都是使用Any CPU作為目標(biāo)平臺(tái),默認(rèn)為32位。如果想實(shí)現(xiàn)SQLite數(shù)據(jù)庫(kù)應(yīng)用,首先要準(zhǔn)備一些類庫(kù),因?yàn)镾QLite并不是微軟的數(shù)據(jù)庫(kù),所以Windows系統(tǒng)是沒有SQLite類庫(kù)的,SQLite類庫(kù)會(huì)區(qū)分32位和64位,類庫(kù)獲取方式,公眾號(hào)后臺(tái)回復(fù): **261 ** ,如下圖所示:

圖片

  • 首先將公用的類庫(kù)復(fù)制到Debug根目錄下,然后手動(dòng)添加下SQLiteHelper,SQLiteHelper是一個(gè)封裝好的SQLite數(shù)據(jù)庫(kù)操作類,如下圖所示,添加之后,會(huì)有錯(cuò)誤提示,將System.Data.SQLite.dll添加引用即可消除錯(cuò)誤。

圖片

  • 設(shè)置連接字符串:SQLite連接字符串指向的是數(shù)據(jù)庫(kù)文件,所以這里首先要之前創(chuàng)建好的數(shù)據(jù)文件復(fù)制到項(xiàng)目中來,直接放到Debug路徑下,然后在窗體運(yùn)行初始化時(shí),設(shè)置一下連接字符串,連接字符串格式如下:

圖片

  • 在查詢按鈕下,寫一段簡(jiǎn)單的查詢代碼,如下圖所示:

圖片

  • 運(yùn)行程序,執(zhí)行查詢事件,代碼會(huì)報(bào)錯(cuò),如下圖所示:

圖片

這個(gè)錯(cuò)誤,很多童鞋經(jīng)常會(huì)遇到,錯(cuò)誤提示很明顯,就是提示缺少指定模塊,模塊名稱為SQLite.Interop.dll,如果大家還有印象的話,這個(gè)dll是在SQLite類庫(kù)中,32位和64位專有的文件夾中,如下圖所示,因此,我們只需要將x86文件夾下的這兩個(gè)文件復(fù)制到Debug目錄下,這里一定要復(fù)制x86文件夾下的,因?yàn)锳ny CPU默認(rèn)是x86平臺(tái)。

圖片

  • 復(fù)制完成后,再次點(diǎn)擊查詢,結(jié)果如下:

圖片

2.2 64位平臺(tái)

當(dāng)我們使用64位平臺(tái)時(shí),首先將目標(biāo)平臺(tái)改成x64,如下圖所示:

圖片

這時(shí)候,運(yùn)行界面,點(diǎn)擊查詢,會(huì)出現(xiàn)以下錯(cuò)誤:

圖片

對(duì)于這個(gè)錯(cuò)誤,我們將x64文件夾下的兩個(gè)文件復(fù)制到Debug目錄下,然后替換一下,再執(zhí)行查詢,實(shí)現(xiàn)最終的數(shù)據(jù)讀?。?/p>

圖片

當(dāng)我們同時(shí)將下圖中的目標(biāo)平臺(tái)修改為x64時(shí),再重新生成,會(huì)在bin文件夾下重新產(chǎn)生一個(gè)x64的文件夾,這時(shí)候所有的生成內(nèi)容都將存儲(chǔ)在x64文件夾下,與之前的Debug無關(guān)。

圖片

圖片這時(shí)候再重新生成,運(yùn)行界面,點(diǎn)擊查詢,又會(huì)出現(xiàn)下面的錯(cuò)誤:

圖片

再次遇到這樣的問題,我們應(yīng)該很清楚,就是需要將只需要將類庫(kù)中x64文件夾下的這兩個(gè)文件復(fù)制到Bin目錄下x64文件夾下的Debug文件夾中,同時(shí)還需要將數(shù)據(jù)庫(kù)復(fù)制進(jìn)去。重新生成,點(diǎn)擊查詢,結(jié)果如下:

圖片

2.3 x86平臺(tái)

當(dāng)我們將下圖中的目標(biāo)平臺(tái)修改為x86時(shí),再重新生成,同理會(huì)在bin文件夾下重新產(chǎn)生一個(gè)x86的文件夾,這時(shí)候所有的生成內(nèi)容都將存儲(chǔ)在x86文件夾下,與之前的Debug無關(guān),這里的解決方案與上述2.2描述類似,因此不再作贅述。

圖片

3 整體總結(jié)

通過針對(duì)各個(gè)平臺(tái)的說明,我們發(fā)現(xiàn)SQLite使用中常見的錯(cuò)誤無非就那么幾種,而解決方案也是差不多,始終需要遵從一個(gè)原則,保證我們需要的第三方dll放在項(xiàng)目生成的路徑下。當(dāng)我們不清楚項(xiàng)目生成的路徑時(shí),可以通過清理解決方案,再重新生成解決方案,觀察項(xiàng)目exe的修改時(shí)間,是否為當(dāng)前最新的時(shí)間,從而判斷該路徑是否為項(xiàng)目生成路徑。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL數(shù)據(jù)庫(kù)

    關(guān)注

    0

    文章

    25

    瀏覽量

    7078
  • SQlite
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    16353
  • 軟件庫(kù)
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    7881
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    玩轉(zhuǎn)SQLite5:使用Python來讀寫數(shù)據(jù)庫(kù)

    本篇介紹了如何使用**Python**語言來進(jìn)行SQLite數(shù)據(jù)庫(kù)的讀寫,在嵌入式式開發(fā)中,更多的是使用**C/C++**語言進(jìn)行開發(fā),因此,下篇我們介紹如何使用C語言來進(jìn)行SQLite數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 09-25 08:51 ?2280次閱讀
    玩轉(zhuǎn)<b class='flag-5'>SQLite</b>5:使用Python來讀寫<b class='flag-5'>數(shù)據(jù)庫(kù)</b>

    Wince系統(tǒng)基于數(shù)據(jù)庫(kù)Sqlite的應(yīng)用

    覺得有點(diǎn)象,但是事實(shí)上它們區(qū)別很大。比如SQLite 支持跨平臺(tái),操作簡(jiǎn)單,能夠使用很多語言直接創(chuàng)建數(shù)據(jù)庫(kù),而不象Access一樣需要Office的支持。如果你是個(gè)很小型的應(yīng)用,或者你想做嵌入式開發(fā)
    發(fā)表于 07-18 11:31

    關(guān)于Lv與Sqlite數(shù)據(jù)庫(kù)的通信

    大神做過Lv與Sqlite數(shù)據(jù)庫(kù)的通信嗎?謝謝了
    發(fā)表于 06-22 22:01

    LabVIEW訪問SQLite數(shù)據(jù)庫(kù)接口研究

    【摘要】 本文介紹了LabVIEW環(huán)境下利用API技術(shù)訪問開源數(shù)據(jù)庫(kù)SQLite的方法,實(shí)現(xiàn)了可跨平臺(tái)操作的數(shù)據(jù)庫(kù)。采用此種方法完成了對(duì)過程控制中歷史
    發(fā)表于 02-04 13:38

    嵌入式數(shù)據(jù)庫(kù)Sqlite移植教程

    嵌入式數(shù)據(jù)庫(kù)Sqlite移植教程 sqlite-3.3.6編譯安裝與交叉編譯全過程詳細(xì)記錄
    發(fā)表于 03-11 09:57 ?3879次閱讀

    SQLite嵌入式數(shù)據(jù)庫(kù)在Wince中的應(yīng)用實(shí)例

    隨著科學(xué)技術(shù)的發(fā)展,嵌入式系統(tǒng)成為了科技發(fā)展的主要領(lǐng)域, Linus和Wince是比較常見的嵌入式系統(tǒng)。嵌入式開發(fā)過程離不開數(shù)據(jù)庫(kù)的應(yīng)用,對(duì)于嵌入式數(shù)據(jù)庫(kù)的選擇是必要的。通常,嵌入式系統(tǒng)選擇的
    發(fā)表于 10-23 16:05 ?0次下載
    <b class='flag-5'>SQLite</b>嵌入式<b class='flag-5'>數(shù)據(jù)庫(kù)</b>在Wince中的應(yīng)用實(shí)例

    怎么創(chuàng)建SQLite數(shù)據(jù)庫(kù)

    大家好,今天給大家分享一篇如何創(chuàng)建SQLite數(shù)據(jù)庫(kù)的文章。
    的頭像 發(fā)表于 02-22 16:21 ?6412次閱讀
    怎么創(chuàng)建<b class='flag-5'>SQLite</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>

    SQLite數(shù)據(jù)庫(kù)的特點(diǎn) SQLite數(shù)據(jù)庫(kù)簡(jiǎn)單介紹

    SQLite數(shù)據(jù)庫(kù)的特點(diǎn) SQLite數(shù)據(jù)庫(kù)簡(jiǎn)單介紹 SQLite數(shù)據(jù)庫(kù)是一種輕型的嵌入式
    的頭像 發(fā)表于 08-28 16:40 ?6069次閱讀

    如何創(chuàng)建一個(gè)Sqlite數(shù)據(jù)庫(kù)?

    如何創(chuàng)建一個(gè)Sqlite數(shù)據(jù)庫(kù)Sqlite是一種輕量級(jí)、占用空間小、操作速度快的嵌入式數(shù)據(jù)庫(kù),使用它可以方便地存儲(chǔ)和管理數(shù)據(jù)。
    的頭像 發(fā)表于 08-28 16:40 ?4777次閱讀

    什么是Sqlite數(shù)據(jù)庫(kù)

    立。Sqlite數(shù)據(jù)庫(kù)的特點(diǎn)是占用空間小、運(yùn)行速度快、使用簡(jiǎn)單等。Sqlite數(shù)據(jù)庫(kù)被廣泛應(yīng)用于各種移動(dòng)設(shè)備、嵌入式設(shè)備和桌面應(yīng)用程序中。本文將詳細(xì)介紹
    的頭像 發(fā)表于 08-28 16:41 ?3097次閱讀

    SQLite數(shù)據(jù)庫(kù)能加密嗎

    SQLite數(shù)據(jù)庫(kù)能加密嗎? SQLite是一種以文件為基礎(chǔ)的輕量級(jí)數(shù)據(jù)庫(kù)管理系統(tǒng),它被廣泛應(yīng)用在許多領(lǐng)域,例如移動(dòng)設(shè)備應(yīng)用程序、桌面應(yīng)用程序、網(wǎng)絡(luò)瀏覽器、機(jī)器人和嵌入式系統(tǒng)等。在許多
    的頭像 發(fā)表于 08-28 16:41 ?4327次閱讀

    SQLite數(shù)據(jù)庫(kù)能共享嗎?

    個(gè)人電腦或移動(dòng)設(shè)備上的單個(gè)用戶。但是,SQLite數(shù)據(jù)庫(kù)實(shí)際上是可以在多用戶環(huán)境中使用的,只要它被正確地配置和管理。 在SQLite中,多用戶共享數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 08-28 16:41 ?3399次閱讀

    SQLite數(shù)據(jù)庫(kù)與python的區(qū)別

    、數(shù)據(jù)科學(xué)等方面。SQLite數(shù)據(jù)庫(kù)和Python之間很多不同之處,下面將詳細(xì)解析它們之間的區(qū)別。 1. 數(shù)據(jù)庫(kù)類型
    的頭像 發(fā)表于 08-28 16:41 ?1130次閱讀

    SQLite數(shù)據(jù)庫(kù)增刪改查

    SQLite數(shù)據(jù)庫(kù)增刪改查? SQLite是一種輕量級(jí)的RDBMS(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)),具有速度快、易用性高等優(yōu)點(diǎn)。雖然SQLite
    的頭像 發(fā)表于 08-28 17:09 ?1503次閱讀

    適用于SQLite的dbExpress數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序

    Builder(包括社區(qū)版)對(duì) SQLite 的快速訪問,在 Windows 和 macOS(32 位和 64 位)和 Linux(64 位)平臺(tái)。 對(duì)于此數(shù)據(jù)庫(kù)引擎,dbExpress 提供了一個(gè)
    的頭像 發(fā)表于 02-09 09:45 ?394次閱讀