AdoHelper是MS DAAB中的一個抽象資料訪問類,由它派生出的SqlHelper使用很廣泛,PDF.NET資料開發架構內部按照AdoHelper的介面做了一個自己的實現,下面簡單說明一下怎麼用它使用預存程序。
PDF.NET的兩個功能:SQL-MAP和OQL在我們的項目和架構的樣本程式用的都比較多,但是直接使用AdoHelper的人還很少,所以新來的同事為了簡便,自己又去找了一個SqlHelper,實際上沒有這個必要。
假設有一個MySQL資料庫test,有一個預存程序proc_user1,下面是使用預存程序的例子。
1,首先配置App.config/Web.config:
<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name ="default" connectionString ="server=192.168.XX.XX;User Id=root;password=XXXX;database=test" providerName="PWMIS.DataProvider.Data.MySQL,PWMIS.MySqlClient"/> </connectionStrings></configuration>
2,在程式裡面如下使用:
PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.GetDBHelperByConnectionName("default");//PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.Instance ;//MySQL 預存程序測試;//參數名字可以加 @符號,例如 @pAge1 DataSet ds1= db.ExecuteDataSet("proc_user1", CommandType.StoredProcedure, new System.Data.IDataParameter[] { db.GetParameter ("@pAge1",22) });
3,說明:
有兩種擷取Data Access Objects執行個體的方式,使用MyDB.Instance 或者從串連配置名擷取
MyDB.GetDBHelperByConnectionName("default");
"default" 是設定檔裡面的串連名稱;
使用預存程序,僅僅需要將預存程序名字,CommandType.StoredProcedure,和參數數組傳遞過去即可。
PS:
雖然本文說明的是MySQL用法,實際上PDF.NET架構支援的各種資料庫如果能夠使用預存程序,使用方式都是一致的。