Csharp使用ADO.NET操作SQLite

SQLite是一個簡易的資料庫系統,開放原始碼,可以直接把SQLite綁在程式裡使用,FireFox及Android等軟體也都有內建SQLite。SQLite不需要安裝,看起來就只是一個檔案而已,也可以使用memory模式,讓它存在記憶體中而不需要建立一個檔案存放。

SQLite支援的SQL指令:http://www.sqlite.org/lang_corefunc.html

C#要連接SQLite可以使用open source的System.Data.SQLite,它是一個基於ADO.Net所做與SQLite的溝通介面,目前支援到.net framework 3.5。可於sourceforge下載其dll來使用,就可以了。

下方的範例是介紹如何在Csharp下使用ADO.NET連接與操作SQLite,包含了自動產生SQLite檔案與DataGridView使用class binding datasource方法。

一、建立一個專案,並先將其儲存起來

(需要先建置專案才能使用專案裡的class當做datasource)

01.jpg

02.jpg

二、改變專案使用的Framework




在專案節點上選擇屬性

專案屬性

目標Framework(G):改成.NET Framework 3.5以下

Csharp屬性視窗

告知需要重新啟動專案

告知需要重新啟動專案

三、加入System.Data.SQLite的Dll當做參考

在專案裡的參考節點上按右鍵選加入參考(R)....

06.jpg

找到DLL加入

System.Data.SQLite.dll

參考的節點上可以看到System.Data.SQLite已加入成功

因為原本專案為.NET Framework 4被降為3.5,所以會多出一個無法使用的參考Microsoft CSharp,此時可順便移除掉它。

Microsoft CSharp

四、建立相容模式

SQLite ADO.NET是建立於版本v2.0.50727,所以在比較高的版本會有相容性問題,所以修改app.config或web.config來使其相容使用。

ps.有一說可以在.NET Framework 4.0修改設定則可以使用SQLite ADO.NET

app.config

在startup的tag上加上屬性

在範列裡我們會使用到二種建立SQLite Connection的方法,其中一種為DbProvider,所以需要使用到以下tag內容,放在configuration內就可以了,如果不使用此種DbProvider方法,也可不加。

app.config useLegacyV2RuntimeActivationPolicy

五、建立取得Connection的程式與需要使用的class

建立Class

Db.css

以下是使用DbOroviderFactory的方法建立Connection

以下是直接使用new SQLiteConnection來建立連線

使用以下語法可以建立SQLite檔案

SQLite在使用時它的ConnectionString "db/db.s3db",db為其目錄,而db.s3db為其檔案名稱。

Class1.cs

提供一個class專門來承載資料內容mytest

六、建立顯示及操作畫面

SQLite操作畫面

把DataGridView的DataSource綁定到bindingSource,二組各自綁定一個bindingSource

DataGridView binding DataSource

建置方案,如此class才會被編譯成dll,在使用資料組態來源精靈時才可以看到

Compiler

把二組的bindingSource都設定其DataSource,利用加入專案資料來源來建立

bindingSource Bind class datasource

類型選擇”物件”

17.jpg

然後選擇先寫好的class myetest

18.jpg

19.jpg

另一組則可直接選取,不需要再使用精靈

20.jpg

畫面已經顯示clas裡所定義的欄位,可以自行修改header的名稱來對應

畫面配置

再來針對四個button建立click event的程式

七、執行結果

原本在目錄裡並沒有db/db.s3db的目錄及檔案

22.jpg

由上而下操作後,可以看到GridView裡有了二筆資料

SQLite執行結果

再查看目錄裡已經自動建立SQLite的檔案了

24.jpg

程式碼下載

0 comments on “Csharp使用ADO.NET操作SQLite

    1 Pings/Trackbacks 於 "Csharp使用ADO.NET操作SQLite"

    發表迴響

    你的電子郵件位址並不會被公開。 必要欄位標記為 *

    *