--結合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的數據訪問對象了。
<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]); } } }