Example:
查詢
//引用物件 using DBLib; //建立DBLib DBLib db = new DBLib; db.ParameterClear(); db.ParameterAdd(new CommandParameter("ID", "Tim")); DataTable dt = db.Search("SELECT * FROM TBLUSER WHERE USERID = :ID");
分頁查詢
//引用物件 using DBLib; //建立DBLib DBLib db = new DBLib; db.ParameterClear(); db.ParameterAdd(new CommandParameter("Zone", "123")); //查詢第1頁(從0開始), 每頁10筆資料 DataTable dt = db.SearchByPagerNum("SELECT * FROM TBLUSER WHERE Zone = :Zone", 10, 0);
使用Transaction做Update
//引用物件 using DBLib; //建立DBLib DBLib db = new DBLib; // Start Transaction db.oConnection.Open(); IDbTransaction oTransaction = db.oConnection.BeginTransaction(); db.ParameterClear(); db.ParameterAdd(new CommandParameter("ID", "Tim")); try { db.ExecuteNonQuery("UPDATE TBLUSER SET USERID = 'TIM' WHERE USERID = :ID", oTransaction); } catch (Exception err) { Response.Write("<br><br>Commit Error:" + err.ToString()); oTransaction.Rollback(); db.oConnection.Close(); return; } // Commit Transaction oTransaction.Commit(); db.oConnection.Close();
以下做個簡單說明~
<Property>
DefaultSort - 指定要 order by 的欄位。
<Method>
GetConnectionString(): 抓取設定於 Web.config 的 DB Connection String,Web.config 設定方式如下:
<configuration>
<connectionStrings>
<add name="DBConnectionString" connectionString="server=localhost;User ID=TEST;Password=TEST" providerName="System.Data.OracleClient"/>
</connectionStrings>
</configuration>
ParameterClear(): 用來清空Parameter。
ParameterAdd(CommandParameter mCommandParamenter): 用來新增Parameter(建議先清空Parameter再來新增),EX: DBLib.ParameterClear(); DBLib.ParameterAdd(new CommandParameter("ID", "Tim"));
ExecuteNonQuery(string sSql): 執行SQL,不回傳資料集合。
ExecuteNonQuery(string sSql, OracleTransaction oTransaction): 執行SQL,有Transaction的效果,不回傳資料集合。
Search(string sSql): 執行SQL,回傳資料集合DataTable。
Search(string sSql, OracleTransaction oTransaction): 執行SQL,有Transaction的效果,回傳資料集合DataTable。
SearchByPagerNum(string sSql, int iPageSize, int iPageIndex): 執行SQL,有分頁的效果,只抓第iPageIndex這頁總共iPageSize筆資料(iPageIndex從0開始算),回傳資料集合DataTable。
最新版本分享於 Dropbox。
2017/06/08更新: 新增支援 ODBC 資料庫類型。
2017/2/19更新:
(1) 微軟多年前已不再更新 System.Data.OracleClient,因此將它改成 Oracle 提供的 Provider:Oracle.ManagedDataAccess,但它只支援 Oracle DB 10.2 以上版本。 個人對於舊版本的 Oracle DB是使用 ODBC 來連結,DBLib 也改了一版 for ODBC 的。
(2) 新增 Class DBLibByDapper<TEntity>,用來使用 Dapper 的查詢,Dapper 使用方法可參考這裡。
2013/02/19更新: 上述的 DB 處理物件(DBLib),在連 Oracle 時需用到 System.Data.OracleClient.dll,Visual Studio 有內建,沒有的人可以直接下載使用(分享)。 此次改成將所有連接 DB 的物件都改成介面,以方便支援不同的 DB,例如 OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction 都改成了IDbConnection、IDbCommand、IDbDataAdapter、IDbTransaction。 預設是連 Oracle,如果要改連 SqlServer,在宣告時就要指定好, EX:DBLib db = new DBLib(DBLib.DbType.SqlServer);
沒有留言:
張貼留言