Enterprise-Library20-企業(yè)庫常用方法_第1頁
Enterprise-Library20-企業(yè)庫常用方法_第2頁
Enterprise-Library20-企業(yè)庫常用方法_第3頁
Enterprise-Library20-企業(yè)庫常用方法_第4頁
Enterprise-Library20-企業(yè)庫常用方法_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Enterprise Library 2.0 -企業(yè)庫常用方法下面我們重點來說一下DataAccess Application Block操作數(shù)據(jù)庫的方法。1、創(chuàng)建一個數(shù)據(jù)庫實例DataBase/創(chuàng)建一個默認的數(shù)據(jù)庫實例Database defaultdb = DatabaseFactory.CreateDatabase();/創(chuàng)建一個名為Connection String的數(shù)據(jù)庫實例Database db = DatabaseFactory.CreateDatabase(Connection String);/上面兩種創(chuàng)建數(shù)據(jù)庫實例的方法的數(shù)據(jù)庫可以是任何類型的數(shù)據(jù)庫,取決于Config文件

2、中的配置信息/下面的這種方面展示了創(chuàng)建一個SQL數(shù)據(jù)庫的實例,需引用Microsoft.Practices.EnterpriseLibrary.Data.Sql程序集SqlDatabase dbsql = DatabaseFactory.CreateDatabase(Connection String) as SqlDatabase;/我們同樣也可以不通過配置文件來創(chuàng)建數(shù)據(jù)庫實例,如下string connString = server=.;database=EnterpriseLibrary;uid=sa;pwd=;SqlDatabase nocofigdb = new SqlDatabas

3、e(connString);2、創(chuàng)建DbCommandDbCommand的創(chuàng)建方式有兩種:一種是為了調用存儲過程創(chuàng)建,一種是為了執(zhí)行一般的SQL語句而創(chuàng)建,具體用哪一種方式,就要看你需要執(zhí)行的是存儲過程還是SQL語句了。/創(chuàng)建一個SQL語句的DbCommandDatabase db = DatabaseFactory.CreateDatabase();string sql = Select * from person;DbCommand Sqldbcomm = db.GetSqlStringCommand(sql);/創(chuàng)建一個存儲過程的DbCommand/存儲過程名稱為GetAllPerson

4、ByNamestring procName = GetAllPersonByName;DbCommand Procdbcomm = db.GetStoredProcCommand(procName);3、存儲過程中的參數(shù)處理DataBase類中包含多種傳遞存儲過程參數(shù)的方法,也包含了得到和設置參數(shù)值的方法,如下:AddParameter. 為存儲過程傳遞一個參數(shù)(輸入型或輸出型) AddInParameter. 為存儲過程傳遞一個輸入型參數(shù)AddOutParameter. 為存儲過程傳遞一個輸出型參數(shù)GetParameterValue. 獲取某存儲過程指定參數(shù)的值 SetParameterVa

5、lue. 為存儲過程的某個參數(shù)賦值,當你需要用同一個方法來執(zhí)行插入多條記錄時,就可參數(shù)給參數(shù)賦值的方法來進行/創(chuàng)建一個存儲過程的DbCommand/存儲過程名稱為GetAllPersonByNamestring procName = GetAllPersonByName;DbCommand Procdbcomm = db.GetStoredProcCommand(procName);/添加一個輸入型的參數(shù)db.AddInParameter(Procdbcomm, sex, DbType.String);/添加一個輸出型的參數(shù)db.AddOutParameter(Procdbcomm, name

6、, DbType.String,20);/設置參數(shù)的值db.SetParameterValue(Procdbcomm, sex, 男);/執(zhí)行存儲過程db.ExecuteNonQuery(Procdbcomm);/得到輸出參數(shù)的值,注意轉化返回值類型string outvalue = (string) db.GetParameterValue(Procdbcomm, name);4、執(zhí)行ExecuteReader方法返回一個IDataReader類型的數(shù)據(jù)集因為ExecuteReader方法在一開始執(zhí)行時就打開了一個與數(shù)據(jù)庫的連接,所以我們必須注意在使用結束時關閉連接,而用using()語句塊

7、就能確保ExecuteReader方法在執(zhí)行完畢時關閉與數(shù)據(jù)庫的連接。什么時候使用此方法:返回的數(shù)據(jù)僅僅用來顯示,并不對其進行修改,刪除等操作; 綁定返回的數(shù)據(jù)到WebForm Control不需要緩存返回的數(shù)據(jù),用完就釋放using (IDataReader reader = db.ExecuteReader(CommandType.Text, select * from person)DataGrid1.DataSource = reader;DataGrid1.DataBind();5、執(zhí)行ExecuteDataSet方法返回一個DataSetpublic DataSet GetPers

8、onList()Database db = DatabaseFactory.CreateDatabase();DbCommand dbcomm = db.GetSqlStringCommand(select * from person);return db.ExecuteDataSet(dbcomm);什么時候使用此方法:需要返回多表數(shù)據(jù);如果你需要逐一訪問數(shù)據(jù)庫的每一條記錄,這個時候如果使用DataReader的話,則會使與數(shù)據(jù)庫的連接一直處于打開的狀態(tài),長此以往,就會使應用程序的性能和可伸縮性大大降低;需要和其他的應用程序交換數(shù)據(jù);6、執(zhí)行ExecuteNonQuery該方法返回的是SQL

9、語句執(zhí)行影響的行數(shù),我們可以利用該方法來執(zhí)行一些沒有返回值的操作(Insert,Update,Delete)public void AddPerson()Database db = DatabaseFactory.CreateDatabase();DbCommand dbcomm = db.GetSqlStringCommand(insert into person values(1,shy,女,123456);db.ExecuteNonQuery(dbcomm);7、執(zhí)行ExecuteScalar返回單值public string GetPersonName()Database db = D

10、atabaseFactory.CreateDatabase();DbCommand dbcomm = db.GetSqlStringCommand(select name from person);return (string)db.ExecuteScalar(dbcomm);8、事務處理public void UseTransaction()Database db = DatabaseFactory.CreateDatabase();DbCommand dbcomm1 = db.GetSqlStringCommand(update person set name=pw);DbCommand

11、dbcomm2 = db.GetSqlStringCommand(delete from person where id=1);using (DbConnection conn = db.CreateConnection()/打開連接conn.Open();/創(chuàng)建事務DbTransaction trans = conn.BeginTransaction();trydb.ExecuteNonQuery(dbcomm1);db.ExecuteNonQuery(dbcomm2);/都執(zhí)行成功則提交事務trans.Commit();catch(Exception)/發(fā)生異常,事務回滾trans.Rol

12、lback();/關閉連接conn.Close();9、執(zhí)行ExecuteXmlReader返回XML數(shù)據(jù)支持Sql Server 2000 及以后版本的數(shù)據(jù)庫,對微軟以外的數(shù)據(jù)庫應該不支持。public void UseXMLReader()SqlDatabase dbSQL = DatabaseFactory.CreateDatabase(Connection String) as SqlDatabase;/ 要返回XML數(shù)據(jù)需要在SQL語句后加 FOR XML AUTOstring sqlCommand = SELECT ProductID, ProductName FROM Produ

13、cts FOR XML AUTO;DbCommand dbCommand = dbSQL.GetSqlStringCommand(sqlCommand);XmlReader personReader = null;StringBuilder personlist = new StringBuilder();trypersonReader = dbSQL.ExecuteXmlReader(dbCommand);/ 循環(huán)向XML中寫入我們查詢得到的數(shù)據(jù)while (!personReader.EOF)if (personReader.IsStartElement()personlist.Appen

14、d(personReader.ReadOuterXml();personlist.Append(Environment.NewLine);finally/ 關閉 Reader.if (personReader != null)personReader.Close();/ 關閉數(shù)據(jù)庫連接if (dbCommand.Connection != null)dbCommand.Connection.Close();10、用DataSet批量的添加,修改,刪除數(shù)據(jù)public void UpdateDataBase()Database db = DatabaseFactory.CreateDatabas

15、e();DataSet personDataSet = new DataSet();string sqlCommand = Select * from person;DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);string personTable = person;/ 得到初始化數(shù)據(jù)db.LoadDataSet(dbCommand, personDataSet, personTable);/ 得到未修改前的數(shù)據(jù)集DataTable table = personDataSet.TablespersonTable;/ 往Data

16、Set中添加一行數(shù)據(jù)DataRow addedRow = table.Rows.Add(new object 18, New person, 男, 654321 );/ 修改table.Rows0ProductName = Modified product;/ 下面分別創(chuàng)建添加,修改,刪除的操作DbCommand insertCommand = db.GetStoredProcCommand(AddPerson);db.AddInParameter(insertCommand, Name, DbType.String, Name, DataRowVersion.Current);db.AddI

17、nParameter(insertCommand, Sex, DbType.String, Sex, DataRowVersion.Current);db.AddInParameter(insertCommand, ID, DbType.Int32, ID, DataRowVersion.Current);DbCommand deleteCommand = db.GetStoredProcCommand(DeletePerson);db.AddInParameter(deleteCommand, ID, DbType.Int32, ID, DataRowVersion.Current);DbC

18、ommand updateCommand = db.GetStoredProcCommand(UpdatePerson);db.AddInParameter(updateCommand, Name, DbType.String, Name, DataRowVersion.Current);db.AddInParameter(updateCommand, Sex, DbType.String, Sex, DataRowVersion.Current);db.AddInParameter(insertCommand, ID, DbType.Int32, ID, DataRowVersion.Cur

19、rent);/ 提交對DataSet的修改,并返回影響的行數(shù)int rowsAffected = db.UpdateDataSet(productsDataSet, Products, insertCommand, updateCommand, deleteCommand, Microsoft.Practices.EnterpriseLibrary.Data.UpdateBehavior.Standard);/-Enterprrise LLibrarry2.0數(shù)數(shù)據(jù)庫常用操操作2(不同同版本的解釋釋)今天學習了Ennterprrise LLibrarry2.0的的Data Accesss Ap

20、pplicattion BBlock,DData AAccesss Appllicatiion Bllock提供供了通用的數(shù)數(shù)據(jù)訪問的功功能,隨著22.0版本的的推出有了很很大變化。俺俺就多寫了對對SQL和AACCESSS數(shù)據(jù)庫自由由切換的一些些代碼出來共共享。先看完完原文再接俺俺的代碼吧。一改進在DAAB1.1里面我們們知道Dattabasee方法返回或或者創(chuàng)建一個個DBCommmandWWrappeer對象,而而在DAABB2.0里面面移除了DBBCommaandWraapper類類,用ADOO.NET22.0里面的的DBCommmand類類代替實現(xiàn)類類似的功能,這這樣使得DAAAB跟我們

21、們的.NETT類庫的結合合更加緊密,回回憶一下我們們在1.1里里面用DBCCommanndWrappper來訪訪問數(shù)據(jù)時的的代碼: 二使用示例Databasse db = DattabaseeFactoory.CrreateDDatabaase(); DBCommaandWraapper dbCommmand = db.GetSttoredPProcCoommanddWrappper(GGetProoductssByCattegoryy); dbCommaand.AdddInPaarametter(CCategooryID, DbTType.IInt32, Cateegory); DataSe

22、tt prodductDaataSett = dbb.ExeccuteDaataSett(dbCoommandd);而用了新的DBBCommaand類之后后則變成了: Databasse db = DattabaseeFactoory.CrreateDDatabaase(); DbCommaand dbbCommaand = db.GeetStorredProocCommmand(GetPrroducttsByCaategorry); db.AddIInParaameterr(dbCoommandd, CaategorryID, DbTyype.Innt32, Categgory); Data

23、Sett prodductDaataSett = dbb.ExeccuteDaataSett(dbCoommandd);數(shù)據(jù)庫連接字符符串在我們基基于數(shù)據(jù)庫的的開發(fā)永遠是是少不了的,但但是在DAAAB1.1下下,它所使用用的字符串跟跟我們在.NNET類庫中中使用的連接接字符串卻是是不能共享的的,它們分別別保存在不同同的位置。而而在2.0的的Data Accesss Appplicattion BBlock使使用了ADOO.NET22.0里面配置置區(qū),這樣帶帶來的一個好好處是連接字字符串可以在在Appliicatioon Bloock和自定定義的.NEET類之間共共享使用該配配置區(qū),如: 在.N

24、ET2.0下,泛型型編程已經成成為了一個核核心,而2.0版的DAAAB中也新新增了一個GGeneriicDataabase對對象。DAAAB中雖然已已經包含了SSqlDattabasee和OrcaaleDattabasee,但是如果果我們需要使使用其他的像像DB2等數(shù)數(shù)據(jù)庫時,就就需要用到GGeneriicDataabase,它可以用于任何.NET類庫中的數(shù)據(jù)提供者,包括OdbcProvider和OleDbProvider。DAAB2.00的配置非常常簡單,主要要有以下幾方方面的配置:配置連接字符串串配置默認數(shù)據(jù)庫庫添加相關的命名名空間: using MMicrossoft.PPractiic

25、es.EEnterppriseLLibrarry.Datta; using SSystemm.Dataa; 使用Data Accesss Appplicattion BBlock進進行數(shù)據(jù)的讀讀取和操作,一一般分為三步步:1創(chuàng)建Dattabasee對象2提供命令參參數(shù),如果需需要的話3執(zhí)行命令下面分別看一下下DataAAccesssQuickkStartt中提供的一一些例子:執(zhí)行靜態(tài)的SQQL語句public strinng GettCustoomerLiist() / 創(chuàng)建Daatabasse對象 Databasse db = DattabaseeFactoory.CrreateDDatab

26、aase(); / 使用SQQL語句創(chuàng)建建DbCommmand對對象 string sqlCoommandd = SSelectt CusttomerIID, Naame, AAddresss, Ciity, CCountrry, PoostalCCode + Frrom Cuustomeers; DbCommaand dbbCommaand = db.GeetSqlSStringgCommaand(sqqlCommmand); StringBBuildeer reaaderDaata = new SStringgBuildder(); / 調用ExxecuteeReadeer方法 using

27、 (IDataaReadeer dattaReadder = db.ExxecuteeReadeer(dbCCommannd) whiile (ddataReeader.Read() / GGet thhe vallue off the Namee collumn iin thee DataaReadeer readderDatta.Apppend(ddataReeaderNamee); readderDatta.Apppend(EEnviroonmentt.NewLLine); return readeerDataa.ToSttring(); 執(zhí)行存儲過程并并傳遞參數(shù),返返回DataaSet

28、public DataSSet GeetProdductsIInCateegory(int CCategoory) / Creatte thee Dataabase objecct, ussing tthe deefaultt dataabase serviice. TThe / defauult daatabasse serrvice is deetermiined tthrouggh connfigurrationn. Dattabasee db = DataabaseFFactorry.CreeateDaatabasse(); strring ssqlCommmand = GeetPro

29、dductsBByCateegory; DbCCommannd dbCCommannd = ddb.GettStoreedProccCommaand(sqqlCommmand); / Retriieve pproduccts frrom thhe speecifieed cattegoryy. db.AddInnParammeter(dbCommmand, CattegoryyID, DbTyppe.Intt32, CCategoory); / DataSSet thhat wiill hoold thhe retturnedd resuults DattaSet produuctsDaata

30、Sett = nuull; prooductssDataSSet = db.ExxecuteeDataSSet(dbbCommaand); / Note: connnectioon wass clossed byy ExeccuteDaataSett methhod caall retturn pproducctsDattaSet; 利用DataSSet更新數(shù)數(shù)據(jù)public int UUpdateeProduucts() / Creatte thee Dataabase objecct, ussing tthe deefaultt dataabase serviice. TThe / def

31、auult daatabasse serrvice is deetermiined tthrouggh connfigurrationn. Dattabasee db = DataabaseFFactorry.CreeateDaatabasse(); DattaSet produuctsDaataSett = neew DattaSet(); strring ssqlCommmand = Seelect ProduuctID, ProdductNaame, CCategooryID, UnittPricee, LasstUpdaate + Froom Prooductss; DbCComman

32、nd dbCCommannd = ddb.GettSqlSttringCCommannd(sqllCommaand); strring pproducctsTabble = Prodducts; / Retriieve tthe innitiall dataa db.LoadDDataSeet(dbCCommannd, prroducttsDataaSet, produuctsTaable); / Get tthe taable tthat wwill bbe moddifiedd DattaTablle tabble = produuctsDaataSett.Tabllesprroductt

33、sTablle; / Add aa new produuct too exissting DataSSet DattaRow addeddRow = tablle.Rowws.Addd(new objecct DBNulll.Vallue, New pproducct, 111, 255); / Modiffy an existting pproducct tabble.Roows0ProoductNName = MModifiied prroductt; / Estabblish our IInsertt, Dellete, and UUpdatee commmands DbCCommann

34、d inssertCoommandd = dbb.GetSStoreddProcCCommannd(AdddProdduct); db.AddInnParammeter(inserrtCommmand, ProdductNaame, DbTyppe.Strring, ProdductNaame, DataRRowVerrsion.Curreent); db.AddInnParammeter(inserrtCommmand, CateegoryIID, DDbTypee.Int332, CCategooryID, DattaRowVVersioon.Currrent); db.AddInnPar

35、ammeter(inserrtCommmand, UnittPricee, DbbType.Curreency, UnittPricee, DaataRowwVersiion.Cuurrentt); DbCCommannd delleteCoommandd = dbb.GetSStoreddProcCCommannd(DeeletePProducct); db.AddInnParammeter(deletteCommmand, ProdductIDD, DbbType.Int322, PrroducttID, DataRRowVerrsion.Curreent); DbCCommannd up

36、ddateCoommandd = dbb.GetSStoreddProcCCommannd(UppdatePProducct); db.AddInnParammeter(updatteCommmand, ProdductIDD, DbbType.Int322, PrroducttID, DataRRowVerrsion.Curreent); db.AddInnParammeter(updatteCommmand, ProdductNaame, DbTyppe.Strring, ProdductNaame, DataRRowVerrsion.Curreent); db.AddInnParamme

37、ter(updatteCommmand, LasttUpdatte, DDbTypee.DateeTime, LasstUpdaate, DataRRowVerrsion.Curreent); / Submiit thee DataaSet, captuuring the nnumberr of rrows tthat wwere aaffectted intt rowssAffeccted = db.UUpdateeDataSSet(prroducttsDataaSet, Prodducts, inssertCoommandd, upddateCoommandd, deeleteCComma

38、nnd, UppdateBBehaviior.Sttandarrd); retturn rrowsAfffecteed; 通過ID獲取記記錄詳細信息息public strinng GettProduuctDettails(int pproducctID) / Creatte thee Dataabase objecct, ussing tthe deefaultt dataabase serviice. TThe / defauult daatabasse serrvice is deetermiined tthrouggh connfigurrationn. Dattabasee db =

39、DataabaseFFactorry.CreeateDaatabasse(); strring ssqlCommmand = GeetProdductDeetailss; DbCCommannd dbCCommannd = ddb.GettStoreedProccCommaand(sqqlCommmand); / Add pparamtters / Inputt paraameterrs cann speccify tthe innput vvalue db.AddInnParammeter(dbCommmand, ProoductIID, DDbTypee.Int332, prroductt

40、ID); / Outpuut parrameteers sppecifyy the size of thhe retturn ddata db.AddOuutParaameterr(dbCoommandd, PrroducttName, DbTType.SStringg, 50); db.AddOuutParaameterr(dbCoommandd, UnnitPriice, DbTyppe.Currrencyy, 8); db.ExecuuteNonnQueryy(dbCoommandd); / Row oof datta is captuured vvia ouutput parammet

41、erss strring rresultts = sstringg.Formmat(CuultureeInfo.CurreentCullture, 0, 1, 2:C , dbb.GetPParameeterVaalue(ddbCommmand, ProdductIDD), dbb.GetPParameeterVaalue(ddbCommmand, ProdductNaame), dbb.GetPParameeterVaalue(ddbCommmand, UnittPricee); retturn rresultts; 以XML格式返返回數(shù)據(jù)public strinng GettProduuc

42、tLisst() / Use aa nameed dattabasee insttance that referrs to a SQLL Servver daatabasse. SqllDatabbase ddbSQL = DattabaseeFactoory.CrreateDDatabaase() as SqqlDataabase; / Use FOR XXML AUUTO tto havve SQLL retuurn XMML datta strring ssqlCommmand = Seelect ProduuctID, ProdductNaame, CCategooryID, Unit

43、tPricee, LasstUpdaate + Froom Prooductss FOR XML AAUTO; DbCCommannd dbCCommannd = ddbSQL.GetSqqlStriingCommmand(sqlCoommandd); XmllReadeer prooductssReadeer = nnull; StrringBuuilderr prodductLiist = new SStringgBuildder(); tryy prodductsRReaderr = dbbSQL.EExecutteXmlRReaderr(dbCoommandd); / IIteratt

44、e thrrough the XXmlReaader aand puut thee dataa intoo our resullts. whille (!pproducctsReaader.EEOF) if (pproducctsReaader.IIsStarrtElemment() pproducctListt.Appeend(prroducttsReadder.ReeadOutterXmll(); pproducctListt.Appeend(Ennvironnment.NewLiine); finnally / Cloose thhe Reaader. iif (prroducttsRe

45、adder != nulll) prroducttsReadder.Cllose(); / Expplicittly cllose tthe coonnecttion. The cconnecction is noot cloosed / wheen thee XmlRReaderr is cclosedd. iif (dbbCommaand.Coonnecttion != nulll) dbCoommandd.Connnectioon.Cloose(); retturn pproducctListt.ToSttring(); 使用事務public bool Transsfer(iint tr

46、ransacctionAAmountt, intt sourrceAcccount, int destiinatioonAccoount) boool ressult = falsse; / Creatte thee Dataabase objecct, ussing tthe deefaultt dataabase serviice. TThe / defauult daatabasse serrvice is deetermiined tthrouggh connfigurrationn. Dattabasee db = DataabaseFFactorry.CreeateDaatabas

47、se(); / Two ooperattions, one to crredit an acccountt, andd one to deebit aanotheer / accouunt. strring ssqlCommmand = CrreditAAccounnt; DbCCommannd creeditCoommandd = dbb.GetSStoreddProcCCommannd(sqllCommaand); db.AddInnParammeter(crediitCommmand, AccoountIDD, DbbType.Int322, souurceAcccountt); db.

48、AddInnParammeter(crediitCommmand, Amouunt, DbTyppe.Intt32, ttransaactionnAmounnt); sqllCommaand = DebiitAccoount; DbCCommannd debbitCommmand = db.GetSttoredPProcCoommandd(sqlCCommannd); db.AddInnParammeter(debittCommaand, AccouuntID, DbTType.IInt32, desttinatiionAcccount); db.AddInnParammeter(debitt

49、Commaand, Amounnt, DDbTypee.Int332, trransacctionAAmountt); usiing (DDbConnnectioon connnectiion = db.CrreateCConnecction() connnectioon.Opeen(); DbTrransacction transsactioon = cconnecction.BeginnTranssactioon(); try / Crredit the ffirst accouunt db.ExxecuteeNonQuuery(ccredittCommaand, ttransaactio

50、nn); / Deebit tthe seecond accouunt db.ExxecuteeNonQuuery(ddebitCCommannd, trransacction); / Coommit the ttransaactionn transsactioon.Commmit(); resullt = ttrue; catcch / Roollbacck traansacttion transsactioon.Rolllbackk(); connnectioon.Cloose(); retuurn reesult; 三常見功能1創(chuàng)建Dattabasee對象創(chuàng)建一個默認的的Databbas

51、e對象象Databasse dbSSvc = DatabbaseFaactoryy.CreaateDattabasee(); 默認的數(shù)據(jù)庫在在配置文件中中: 創(chuàng)建一個實例DDatabaase對象/ Use a nammed daatabasse insstancee thatt refeers too an aarbitrrary ddatabaase tyype, / whicch is deterrminedd by cconfigguratiion innformaation. Databasse myDDb = DDatabaaseFacctory.CreatteDataabase(D

52、ataaAccesssQuicckStarrt); 創(chuàng)建一個具體的的類型的數(shù)據(jù)據(jù)庫對象/ Creaate a SQL ddatabaase. SqlDataabase dbSQLL = DaatabasseFacttory.CCreateeDatabbase(DataAAccesssQuickkStartt) ass SqlDDatabaase; 2創(chuàng)建DbCCommannd對象靜態(tài)的SQL語語句創(chuàng)建一個個DbCommmandDatabasse db = DattabaseeFactoory.CrreateDDatabaase(); string sqlCoommandd = SSelectt

53、 CusttomerIID, LaastNamme, FiirstNaame Frrom Cuustomeers; DbCommaand dbbCommaand = db.GeetSqlSStringgCommaand(sqqlCommmand); 存儲過程創(chuàng)建一一個DbCoommanddDatabasse db = DattabaseeFactoory.CrreateDDatabaase(); DbCommaand dbbCommaand = db.GeetStorredProocCommmand(GetPrroducttsByCaategorry); 3管理對象當連接對象打開開后,不需要要

54、再次連接Databasse db = DattabaseeFactoory.CrreateDDatabaase(); string sqlCoommandd = SSelectt ProdductIDD, ProoductNName FFrom PProduccts; DbCommaand dbbCommaand = db.GeetSqlSStringgCommaand(sqqlCommmand); / No nneed tto opeen thee connnectioon; juust maake thhe calll. DataSett custtomerDDataSeet = ddb.

55、ExeecuteDDataSeet(dbCCommannd); 使用Usingg及早釋放對對象Databasse db = DattabaseeFactoory.CrreateDDatabaase(); DbCommaand dbbCommaand = db.GeetSqlSStringgCommaand(SSelectt Namee, Adddress From Custoomers); using (IDataaReadeer dattaReadder = db.ExxecuteeReadeer(dbCCommannd) / Proccess rresultts 4參數(shù)處理Databass

56、e類提供了了如下的方法法,用于參數(shù)數(shù)的處理:AddParaameterr. 傳遞參參數(shù)給存儲過過程 AddInPaarametter. 傳傳遞輸入?yún)?shù)數(shù)給存儲過程程 AddOutPParameeter. 傳遞輸出參參數(shù)給存儲過過程 GetParaameterrValuee. 得到指指定參數(shù)的值值 SetParaameterrValuee. 設定參參數(shù)值使用示例如下:Databasse db = DattabaseeFactoory.CrreateDDatabaase(); string sqlCoommandd = GGetProoductDDetaills; DbCommaand dbbCo

57、mmaand = db.GeetStorredProocCommmand(ssqlCommmand); db.AddIInParaameterr(dbCoommandd, PrroducttID, DbTyppe.Intt32, 55); db.AddOOutParrameteer(dbCCommannd, PProducctNamee, DbbType.Strinng, 500); db.AddOOutParrameteer(dbCCommannd, UUnitPrrice, DbTyype.Cuurrenccy, 8); Databasse db = DattabaseeFactoory.

58、CrreateDDatabaase(); DbCommaand innsertCCommannd = ddb.GettStoreedProccCommaand(AAddProoduct); db.AddIInParaameterr(inseertCommmand, ProoductNName, DbTyype.Sttring, ProoductNName, DataaRowVeersionn.Currrent); db.AddIInParaameterr(inseertCommmand, CattegoryyID, DbTyppe.Intt32, CateggoryIDD, DaataRowwVersiion.Cuurrentt); db.AddIInParaameterr(inseertCommmand, UniitPricce, DDbTypee.Currrency, UniitPricce, DDataRoowVerssion.CCurrennt); 四使用場景DAAB2.00是對ADOO.NET22.0的補充充,它允許你你使用相同的的數(shù)據(jù)訪問代代碼來支持不不同的數(shù)據(jù)庫庫,您通過改改變配置文件件就在不同的的數(shù)據(jù)庫之間間切換。目前前雖然只提供供SQLSeerv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論