標籤:
--結合Enterprise Library串連,操作SQLite
企業庫是我們常用的架構之一,可以從http://entlib.codeplex.com/下載Enterprise Library 5.0.msi。安裝之後有原始碼和chm的文檔。裡面的很多思想更值得我們程式員去研究。
企業庫中的資料訪問組件更是我們常用的資料訪問組件之一。組件預設支援SQL Server和Oracle的資料庫訪問,支援自訂的擴充。
--使用企業庫操作SQLite資料庫
需要用到企業庫的一個向外延展群組件,Enterprise Library Contrib 。裡面擴充了企業庫的很多功能。其中對資料庫的擴充包括了訪問操作SQLite,讓我們可以像在操作SQL SERVER那樣,
保持代碼不用很大的修改,可以很容易的過渡到SQLite上。在http://entlib.codeplex.com/上也可以下載到最新的entlibcontrib-5.0.505.0-2011-10-29-bin.zip。
--SQLite.NET也是一個資料訪問組件
其中的System.Data.SQLite就好像是.NET內建的System.Data.SqlClient一樣。裡麵包含了connection、command等資料訪問的常用對象,只是他們前面都有一個首碼sqlite。
: http://sqlite.phxsoftware.com/下載最新版SQLite,SQLite-1.0.66.0-setup.exe,安裝完成後會產生動態連結程式庫System.Data.SQLite.DLL,在項目中直接引用System.Data.SQLite即可。
只有使用SQLite.NET訪問SQLite時才需要此操作。
--SQLite Expert是一款可視化的資料庫管理工具
允許使用者在 SQLite 伺服器上執行建立、編輯、複製、提取等操作。SQLite Expert支援所有的圖形介面的SQLite特徵。它包括一個可視化查詢產生器,一個SQL編輯與文法突出和代碼自動完成,
強大的table和view設計與匯入匯出功能。 SQLite Expert現在分為兩個版本,一個是免費的Personal Edition,一個是收費 Professional Edition。
--串連方法
首先在web.config或者是app.config中添加如下配置,connectionstring配置節的db就是 SQLite的資料庫檔案,將它放在Web應用的App_Data目錄,|DataDirectory|就代表這個目錄的位置,
後面的就是檔案名稱,剩下的就是我們使用企業庫訪問SQL Server是一樣的了。
<configuration> <configSections> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null /> </configSections> <dataConfiguration defaultDatabase=" "> <providerMappings> <add databaseType="EntLibContrib.Data.SQLite.SQLiteDatabase, EntLibContrib.Data.SqLite, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null" name="System.Data.SQLite" /> </providerMappings> </dataConfiguration> <connectionStrings> <add name="sqlite" connectionString="Data Source=|DataDirectory|\db;Pooling=true;FailIfMissing=false" providerName="System.Data.SQLite" /> </connectionStrings> </configuration>
--使用SQLite.NET訪問SQLite
添加System.Data.SQLite的引用之後。在設定檔(web.config or app.config)中添加如下配置,
也就是添加一個DbProviderFactory的建立源,在代碼中就可以使用DbProviderFactory類來建立SQLite的Data Access Objects了。
<system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite"/> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> </DbProviderFactories> </system.data>
--使用原生態的ADO.NET訪問SQLite
原生態的訪問,就是說直接用connection和command這些對象開啟資料庫,然後開啟串連,進行資料的操作。
DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite"); using (DbConnection conn = fact.CreateConnection()) { conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["sqlite"].ConnectionString; conn.Open(); DbCommand comm = conn.CreateCommand(); comm.CommandText ="select * from customer"; comm.CommandType = CommandType.Text; using (IDataReader reader = comm.ExecuteReader()) { while (reader.Read()) { Response.Write(reader[0]); } } }
C#串連SQLite資料庫方法