承接上篇,本文解析 DataProvider 的檔案系統操作(XML/TEXT/CONFIG)、web.config 專屬配置鍵、ContainerDefine 緩存容器,以及完整的資料庫方法大全速查表。
| 提供者 | 支援格式 | 核心方法 |
|---|---|---|
| XMLProvider | .xml | GetContent(path, rootNode) → List<Hashtable>、CreateFile、AppendFile |
| TextProvider | .txt | GetContent(path)、CreateFile、AppendFile |
| SuitConfigProvider | .config | GetItem(key)、GetSection(sectionKey)、ModifyItem、AppendItem、RemoveElement、GetConnectionString |
所有方法均為 static,可直接呼叫。
<add key="NameABC" value="Data Source=Server;User;Password=111111;..." />
// 程式碼
string connStr = SuitConfigProvider.GetItem("NameABC");
Hashtable section = SuitConfigProvider.GetSection("SectionKey");
SuitConfigProvider.AppendItem("NewKey", "NewValue");
GetContent:傳入檔案路徑與根節點名,回傳 List<Hashtable>,每個 Hashtable 代表一個子節點AppendFile:傳入根節點、新增節點名、List<Hashtable> 內容結構、檔案路徑| 鍵名 | 用途 |
|---|---|
| IsLine.Provider.DataProvider.CfgDllName | 反射資料庫工廠 DLL 路徑 |
| IsLine.Security.Configuration.TokenKey | 加密種子字串 |
| IsLine.Data.Configuration.DBConnectString | 通用資料庫連線字串 |
| IsLine.Data.Configuration.TextProviderFileInfo | 預設文字檔路徑 |
| IsLine.Data.Configuration.SqlServerConnectString | SQL Server 連線字串 |
| IsLine.Data.Configuration.OracleConnectString | Oracle 連線字串 |
實作 ISqlContainer、IOracleContainer、IFileContainer、IDisposable,封裝 DataSet、DataReader、DataTable、DataRow、DataAdapter 等物件,支援 HttpRuntime / HttpContext 緩存策略。
| 屬性 | 型別 | 說明 |
|---|---|---|
| SqlDataReader | SqlDataReader | SQL Server 讀取器 |
| OracleDataReader | OracleDataReader | Oracle 讀取器 |
| DataSet | DataSet | 含緩存優化選項 |
| DataTable | DataTable | — |
| DataRow | DataRow | — |
| SqlDataAdapter | SqlDataAdapter | — |
| OracleDataAdapter | OracleDataAdapter | — |
| IFileContainer.FileContent | FileContent | 檔案內容含緩存選項 |
// 建構函式參數:緩存類型、緩存名稱
var cd = new ContainerDefine(CacheType.HttpRuntime, "IsLineCache");
cd.DataSet = new OracleProvider().ExecuteDataSet(sql, CommandType.StoredProcedure, "TestTable", null);
// 賦值後自動緩存,後續存取 cd.DataSet 直接從緩存讀取
| 方法分類 | 代表簽名 | 關鍵參數說明 |
|---|---|---|
| ExecuteNonQuery | ExecuteNonQuery(cmdText, connectionKey, useTrans, cmdType, params) |
useTrans:是否啟用交易;cmdType:Text/StoredProcedure;交易中 SQL 用 ! 連接 |
| ExecuteScalar | ExecuteScalar(cmdText, cmdType, params) |
回傳首欄首列值 |
| ExecuteReader | ExecuteReader(cmdText, cmdType, params) |
回傳 DbDataReader,用畢必須 Dispose() |
| ExecuteDataAdapter | ExecuteDataAdapter(cmdText, cmdType, params) |
回傳 DbDataAdapter |
| ExecuteDataSet | ExecuteDataSet(cmdText, cmdType, srcTable, connectionKey, params) |
srcTable:填充目標表名 |
| Dispose | Dispose() |
釋放所有 Connection、Command、Reader、Adapter |
連線指定方式三選一:connectionKey (web.config key) / DbConnection 實例 / 預設配置
DataProvider 以「靜態簡易操作 + 實例化連線管理 + 緩存容器優化 + 反射工廠擴充」四層架構,涵蓋資料庫、XML、文字、Config 四大資料源。掌握方法大全速查表,即可高效完成 90% 以上的資料存取開發任務。