使用IsLine FrameWork開發ASP.NET程式之三—使用DataProvider 訪問資料(下)

來源:互聯網
上載者:User
 

    上一期為大家介紹了DataProvider中對SQL SERVER與Oracle資料庫的操作,這一期將為大家介紹對檔案系統的支援。

在DataProvider中,不僅支援對SQL SERVER與Oracle的操作,還支援對檔案的操作。對於檔案目前內建3中支援對象:XML、TEXT、CONFIG檔案,分別位於類庫XMLProvider、TextProvider、SuitConfigProvider中,大家可以自己調用,檔案操作大多使用靜態操作。

    1.對config檔案的操作

這裡還要介紹一SuitConfigProvider類庫中的GetItem、GetSection、AppendItem、RemoveElement方法,這幾個方法可以快速獲得we.config中的Item、節點內容,以及增加、移除節點,例如有個Item資訊如下:

    <add key="NameABC" value="test " />

使用SuitConfigProvider.GetItem("NameABC ") 語句就可以立即獲得該Item內容,SuitConfigProvider類中的方法實現為靜態,使用者可以直接調用.

    2.對文字檔操作:

項目中有很多時候需要對文字檔進行操作,可能會涉及到檔案的建立、內容追加、刪除等,在IsLine類庫中封裝了這些操作,使用者可以方便調用方法實現這些功能,IsLine類庫會自動進行錯誤判斷、資源調優等操作。方法說明如下:

● static string GetContent(string Fileinfo):該方法具有2次重載,獲得檔案內容

● static bool CreateFile(string FileInfo):該方法建立一個檔案,參數就是檔案路徑與檔案名稱

● static bool AppendFile(string str, string FileInfo):該方法具有2次重載,追加檔案內容

    以上的方法很常用,並且已經經過一些最佳化處理,比如在使用者調用AppendFile方法時,IsLine類庫會自動判斷所操作的檔案是否存在,如果不存在會首先建立一個檔案,然後在進行內容追加,這就避免了一些因為檔案不存在而造成的錯誤。

    3.對XML檔案操作:

    XML檔案是各位編寫程式中最常用的一種檔案了,它以簡明的結構化體制深受大家的喜愛,IsLine類庫封裝了對於這種檔案的日常操作,以下是方法列表。

● static List<Hashtable> GetContent(string FileInfo, string SingleNode):該方法具有2次重載,獲得檔案內容。傳入檔案為檔案路徑和根節點名稱,每個節點資訊儲存在HashTable中,並以泛型List<Hashtable>形式返回

● static bool CreateFile(string SingleNode, string FileInfo):該方法建立一個檔案,傳入檔案為檔案路徑和根節點名稱

● static bool AppendFile(string SingleNode, string Element, List<Hashtable> Lht, string FileInfo):該方法2次重載,追加檔案內容,傳入檔案為根節點內名稱、追加節點名稱、追加內容結構和追加檔案資訊。其中追加內容結構為List<Hashtable>,Hashtable的鍵名為追加後XML的節點名。

另外,在Web.config中還可以使用一些支援資訊,對DataProvider進行配置,這些配置決定了用於反射的資料庫工廠的位置、多資料庫連接資訊等。

支援資訊(選擇配置)如下:

鍵名:IsLine.Provider.DataProvider.CfgDllName

作用:反射的資料庫工廠DLL位置

鍵名:IsLine.Security.Configuration.TokenKey

作用:加密使用的種子(字串)

鍵名:IsLine.Data.Configuration.DBConnectString

作用:資料庫連接資訊

鍵名:IsLine.Data.Configuration.TextProviderFileInfo

作用:預設檔案位置

鍵名:IsLine.Data.Configuration.SqlServerConnectString

作用:SQL資料庫連接資訊

鍵名:IsLine.Data.Configuration.OracleConnectString

作用:Oracle資料庫連接資訊

    關於IsLine.Data.ContainerDefiner命名空間的緩衝支援:

    這裡要提一下該命名空間下類的緩衝支援資訊,這些資訊位於IsLine.Data.ContainerDefiner命名空間下。

該類共實現 ISqlContainer, IOracleContainer, IFileContainer, IDisposable四個介面,包括了常見的ADO.Net資料對象,例如DataSet、Reader等,利用OracleProvider或SqleProvider中相關方法獲得的資料對象,可以直接賦值給ContainerDefine類下的對應對象,ContainerDefine會將對象緩衝。

    請大家注意,在聲明ContainerDefine時,建構函式有2個參數,第一個是開啟HttpRuntime緩衝,第二個參數是緩衝的名字,這樣cd中的DataSet對象被賦值後,會自動緩衝,下次在調用cd.DataSet對象時,將自動從緩衝中讀取,不需要OracleProvider().ExecuteDataSet()方法重新取資料了,目前緩衝支援.Net運行時緩衝和上下文緩衝,當然緩衝策略預設是關閉的,當建構函式接收到上述參數時,才會開啟緩衝。

    有關緩衝的詳細說明,請參看後面的文章“IsLine.HttpContent.HttpContentProvider命名空間系列” 。

DataProvider沒介紹的內容還有很多,這裡就不一一介紹了,關於DataProvider Database方法大全,由於篇幅較長,這裡就不佔用寶貴的版面了,有興趣的朋友可以通過訪問作者部落格獲得相關資訊。

    另外,關於使用這個命名空間處理資料事務,可以對其進行擴充,但須遵循一系列的介面契約,為其提供資料庫工廠,按照以下方式部署該工廠的庫檔案,這樣,ILFW運行前會使用私人方法DbProviderFormating()對使用者提供的工廠進行反射。使用者提供的規範如下:

● DLL部署路徑:IsLineFrameWork\IsLine.Provider.DataProvider.CfgDllName,其中IsLine.Provider.DataProvider.CfgDllName為web.config配置的dll名稱。

●工廠所在命名空間:IsLine.Provider.DataProvider

●工廠類名稱: DBFactory

●方法類型DbProviderFactory

●方法名稱:GetDbProvider()

    DataProvider中還有一個類“DBProvider”,這個Provider可以不指明是SQLSERVER還是Oracle資料庫或是其他資料庫,你需要提前遵守上文中提到的相關介面契約,實現為Configution.dll,並放置於約定位置(這個位置在web.config中配置),程式就會自動反射並使用其中的方法了。將來你更改資料庫時,只需要更換這個DLL就可以了,不需要修改主程式。

“DBProvider”還封裝了微軟的DbProviderFactory,這個大家一定知道,我就不多介紹了,調用方法名稱與方式與以上介紹的都一樣。

    至此為止,資料訪問層已經完全介紹完成,在下一講,我們將開始講解如何進行日誌操作。

    此文已在《軟體報》同步發布,任何個人媒體不得轉載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.