ASP.NET企業開發架構IsLine FrameWork系列之六–DataProvider 資料訪問(下)

來源:互聯網
上載者:User

接上文

 

    對檔案系統的操作:

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

    對config檔案的操作:

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

    <add key="NameABC" value="Data Source=Server IP;User;Password=111111;Integrated Security=no;Enlist=false;Pooling=true;" />

    使用SuitConfigProvider.GetItem("NameABC ") 語句就可以立即獲得該Item內容

    SuitConfigProvider類中的方法實現為靜態,使用者可以直接調用,下表羅列了方法調用說明:

方法名

說明

static ConfigFileType ConfigType

指明config類型,預設為web應用程式

static string GetItem(string key)

獲得某個” add key”Item的值

static Hashtable GetSection(string SectionKey)

獲得某個節點的資料,返回HashTable

static string GetConnectionString(string key)

protected internal類型,初始化資料庫連接

static bool ModifyItem(string key, string value)

修改一個” add key”Item的值

static bool AppendItem(string key, string value)

添加一個” add key”Item的值

static bool RemoveElement(string Key)

移除” add key”Item

對文字檔操作:

方法名

說明

static string GetContent(string Fileinfo)

2次重載,獲得檔案內容

static bool CreateFile(string FileInfo)

建立一個檔案

static bool AppendFile(string str, string FileInfo)

2次重載,追加檔案內容

對XML檔案操作:

方法名

說明

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命名空間的緩衝支援:

    這裡要提一下該命名空間下ContainerDefine類的緩衝支援。

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

    //聲明一個容器

    ContainerDefine cd = new ContainerDefine(CacheType.HttpRuntime, "IsLineCache");

    //將返回的DataSet對象賦值給cd容器

    cd.DataSet = new OracleProvider().ExecuteDataSet(sql,CommandType.StoredProcedure,"TestTable",null)

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

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

    DataProvider沒介紹的內容還有很多,這裡就不一一介紹了,也許以後有時間Aicken還會繼續寫完整的。

 

    附 DataProvider Database方法大全:

 

方法/欄位名

功能

類型

ExecuteNonQuery(string cmdText)

執行傳入的sql語句

static int

ExecuteNonQuery(string cmdText, string connectionKey)

使用指定連接字串connectionKey,執行傳入的sql語句,connectionKey必須在web.config檔案中有值

static int

ExecuteNonQuery(string cmdText, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)

1.IsUsingDBTransaction為是否使用資料庫事務。

2.如果cmdType為文本,那麼cmdText為sql語句;如果cmdType為預存程序,那麼cmdText為預存程序名稱

3.如果不需要最後一個參數,則傳遞null即可

static int

ExecuteNonQuery(string cmdText, string connectionKey, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)

使用指定連接字串connectionKey,其他說明見方法3

static int

ExecuteNonQuery(string cmdText, DbConnection connection, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)

使用指定DbConnection執行,其他說明見方法3

static int

ExecuteScalar(string cmdText)

執行傳入的sql語句

static object

ExecuteScalar(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)

其他說明見方法3

static object

ExecuteScalar(string cmdText, string connectionKey, CommandType cmdType, params DbParameter[] commandParameters)

使用指定DbConnection執行

static object

ExecuteScalar(string cmdText, DbConnection connection, CommandType cmdType, params DbParameter[] commandParameters)

使用指定DbConnection執行

static object

ExecuteReader(string cmdText)

執行sql語句,返回DbDataReader。注意,調用此方法後,須調用Dispose()釋放資源

DbDataReader

ExecuteReader(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)

其他說明見方法3

DbDataReader

ExecuteReader(string cmdText, string connectionKey)

見方法2

DbDataReader

ExecuteReader(string cmdText, CommandType cmdType, string connectionKey, params DbParameter[] commandParameters)

其他說明見方法3

DbDataReader

ExecuteReader(string cmdText, CommandType cmdType, DbConnection connection, params DbParameter[] commandParameters)

見方法4

DbDataReader

ExecuteDataAdapter(string cmdText)

執行sql語句

DbDataAdapter

ExecuteDataAdapter(string cmdText, string connectionKey)

見方法2

DbDataAdapter

ExecuteDataAdapter(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)

其他說明見方法3

DbDataAdapter

ExecuteDataAdapter(string cmdText, CommandType cmdType, string connectionKey, params DbParameter[] commandParameters)

見方法4

DbDataAdapter

ExecuteDataAdapter(string cmdText, CommandType cmdType, DbConnection connection, params DbParameter[] commandParameters)

見方法4

DbDataAdapter

ExecuteDataSet(string cmdText)

執行sql語句

DataSet

ExecuteDataSet(string cmdText, string connectionKey, int some)

使用指定連接字串connectionKey,其他說明見方法3

DataSet

ExecuteDataSet(string cmdText, CommandType cmdType, string srcTable, string connectionKey, params DbParameter[] commandParameters)

srcTable為填充表的名子,其他說明見方法3

DataSet

ExecuteDataSet(string cmdText, CommandType cmdType, string srcTable, params DbParameter[] commandParameters)

其他說明見方法3

DataSet

ExecuteDataSet(string cmdText, string srcTable)

其他說明見方法3

DataSet

ExecuteDataSet(string cmdText, string srcTable, string connectionKey)

其他說明見方法3

DataSet

Dispose()

釋放執行個體中所有成員,包括各種Reader、Adapter、Connection等

void

 

   未完待續

    我是李鳴(Aicken) 歡迎您關注我的下一篇文章。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.