日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

.net引用System.Data.SQLite操作SQLite

發布時間:2025/6/15 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net引用System.Data.SQLite操作SQLite 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自: 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。