Enterprise-Library20-企业库常用方法_第1页
Enterprise-Library20-企业库常用方法_第2页
Enterprise-Library20-企业库常用方法_第3页
Enterprise-Library20-企业库常用方法_第4页
Enterprise-Library20-企业库常用方法_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Enterprise Library 2.0 -企业库常用方法下面我们重点来说一下DataAccess Application Block操作数据库的方法。1、创建一个数据库实例DataBase/创建一个默认的数据库实例Database defaultdb = DatabaseFactory.CreateDatabase();/创建一个名为Connection String的数据库实例Database db = DatabaseFactory.CreateDatabase(Connection String);/上面两种创建数据库实例的方法的数据库可以是任何类型的数据库,取决于Config文件

2、中的配置信息/下面的这种方面展示了创建一个SQL数据库的实例,需引用Microsoft.Practices.EnterpriseLibrary.Data.Sql程序集SqlDatabase dbsql = DatabaseFactory.CreateDatabase(Connection String) as SqlDatabase;/我们同样也可以不通过配置文件来创建数据库实例,如下string connString = server=.;database=EnterpriseLibrary;uid=sa;pwd=;SqlDatabase nocofigdb = new SqlDatabas

3、e(connString);2、创建DbCommandDbCommand的创建方式有两种:一种是为了调用存储过程创建,一种是为了执行一般的SQL语句而创建,具体用哪一种方式,就要看你需要执行的是存储过程还是SQL语句了。/创建一个SQL语句的DbCommandDatabase db = DatabaseFactory.CreateDatabase();string sql = Select * from person;DbCommand Sqldbcomm = db.GetSqlStringCommand(sql);/创建一个存储过程的DbCommand/存储过程名称为GetAllPerson

4、ByNamestring procName = GetAllPersonByName;DbCommand Procdbcomm = db.GetStoredProcCommand(procName);3、存储过程中的参数处理DataBase类中包含多种传递存储过程参数的方法,也包含了得到和设置参数值的方法,如下:AddParameter. 为存储过程传递一个参数(输入型或输出型) AddInParameter. 为存储过程传递一个输入型参数AddOutParameter. 为存储过程传递一个输出型参数GetParameterValue. 获取某存储过程指定参数的值 SetParameterVa

5、lue. 为存储过程的某个参数赋值,当你需要用同一个方法来执行插入多条记录时,就可参数给参数赋值的方法来进行/创建一个存储过程的DbCommand/存储过程名称为GetAllPersonByNamestring procName = GetAllPersonByName;DbCommand Procdbcomm = db.GetStoredProcCommand(procName);/添加一个输入型的参数db.AddInParameter(Procdbcomm, sex, DbType.String);/添加一个输出型的参数db.AddOutParameter(Procdbcomm, name

6、, DbType.String,20);/设置参数的值db.SetParameterValue(Procdbcomm, sex, 男);/执行存储过程db.ExecuteNonQuery(Procdbcomm);/得到输出参数的值,注意转化返回值类型string outvalue = (string) db.GetParameterValue(Procdbcomm, name);4、执行ExecuteReader方法返回一个IDataReader类型的数据集因为ExecuteReader方法在一开始执行时就打开了一个与数据库的连接,所以我们必须注意在使用结束时关闭连接,而用using()语句块

7、就能确保ExecuteReader方法在执行完毕时关闭与数据库的连接。什么时候使用此方法:返回的数据仅仅用来显示,并不对其进行修改,删除等操作; 绑定返回的数据到WebForm Control不需要缓存返回的数据,用完就释放using (IDataReader reader = db.ExecuteReader(CommandType.Text, select * from person)DataGrid1.DataSource = reader;DataGrid1.DataBind();5、执行ExecuteDataSet方法返回一个DataSetpublic DataSet GetPers

8、onList()Database db = DatabaseFactory.CreateDatabase();DbCommand dbcomm = db.GetSqlStringCommand(select * from person);return db.ExecuteDataSet(dbcomm);什么时候使用此方法:需要返回多表数据;如果你需要逐一访问数据库的每一条记录,这个时候如果使用DataReader的话,则会使与数据库的连接一直处于打开的状态,长此以往,就会使应用程序的性能和可伸缩性大大降低;需要和其他的应用程序交换数据;6、执行ExecuteNonQuery该方法返回的是SQL

9、语句执行影响的行数,我们可以利用该方法来执行一些没有返回值的操作(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、执行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();/创建事务DbTransaction trans = conn.BeginTransaction();trydb.ExecuteNonQuery(dbcomm1);db.ExecuteNonQuery(dbcomm2);/都执行成功则提交事务trans.Commit();catch(Exception)/发生异常,事务回滚trans.Rol

12、lback();/关闭连接conn.Close();9、执行ExecuteXmlReader返回XML数据支持Sql Server 2000 及以后版本的数据库,对微软以外的数据库应该不支持。public void UseXMLReader()SqlDatabase dbSQL = DatabaseFactory.CreateDatabase(Connection String) as SqlDatabase;/ 要返回XML数据需要在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);/ 循环向XML中写入我们查询得到的数据while (!personReader.EOF)if (personReader.IsStartElement()personlist.Appen

14、d(personReader.ReadOuterXml();personlist.Append(Environment.NewLine);finally/ 关闭 Reader.if (personReader != null)personReader.Close();/ 关闭数据库连接if (dbCommand.Connection != null)dbCommand.Connection.Close();10、用DataSet批量的添加,修改,删除数据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;/ 得到初始化数据db.LoadDataSet(dbCommand, personDataSet, personTable);/ 得到未修改前的数据集DataTable table = personDataSet.TablespersonTable;/ 往Data

16、Set中添加一行数据DataRow addedRow = table.Rows.Add(new object 18, New person, 男, 654321 );/ 修改table.Rows0ProductName = Modified product;/ 下面分别创建添加,修改,删除的操作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的修改,并返回影响的行数int rowsAffected = db.UpdateDataSet(productsDataSet, Products, insertCommand, updateCommand, deleteCommand, Microsoft.Practices.EnterpriseLibrary.Data.UpdateBehavior.Standard);/-Enterprrise LLibrarry2.0数数据库常用操操作2(不同同版本的解释释)今天学习了Ennterprrise LLibrarry2.0的的Data Accesss Ap

20、pplicattion BBlock,DData AAccesss Appllicatiion Bllock提供供了通用的数数据访问的功功能,随着22.0版本的的推出有了很很大变化。俺俺就多写了对对SQL和AACCESSS数据库自由由切换的一些些代码出来共共享。先看完完原文再接俺俺的代码吧。一改进在DAAB1.1里面我们们知道Dattabasee方法返回或或者创建一个个DBCommmandWWrappeer对象,而而在DAABB2.0里面面移除了DBBCommaandWraapper类类,用ADOO.NET22.0里面的的DBCommmand类类代替实现类类似的功能,这这样使得DAAAB跟我们

21、们的.NETT类库的结合合更加紧密,回回忆一下我们们在1.1里里面用DBCCommanndWrappper来访访问数据时的的代码: 二使用示例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);数据库连接字符符串在我们基基于数据库的的开发永远是是少不了的,但但是在DAAAB1.1下下,它所使用用的字符串跟跟我们在.NNET类库中中使用的连接接字符串却是是不能共享的的,它们分别别保存在不同同的位置。而而在2.0的的Data Accesss Appplicattion BBlock使使用了ADOO.NET22.0里面配置置区,这样带带来的一个好好处是连接字字符串可以在在Appliicatioon Bloock和自定定义的.NEET类之间共共享使用该配配置区,如: 在.N

24、ET2.0下,泛型型编程已经成成为了一个核核心,而2.0版的DAAAB中也新新增了一个GGeneriicDataabase对对象。DAAAB中虽然已已经包含了SSqlDattabasee和OrcaaleDattabasee,但是如果果我们需要使使用其他的像像DB2等数数据库时,就就需要用到GGeneriicDataabase,它可以用于任何.NET类库中的数据提供者,包括OdbcProvider和OleDbProvider。DAAB2.00的配置非常常简单,主要要有以下几方方面的配置:配置连接字符串串配置默认数据库库添加相关的命名名空间: using MMicrossoft.PPractiic

25、es.EEnterppriseLLibrarry.Datta; using SSystemm.Dataa; 使用Data Accesss Appplicattion BBlock进进行数据的读读取和操作,一一般分为三步步:1创建Dattabasee对象2提供命令参参数,如果需需要的话3执行命令下面分别看一下下DataAAccesssQuickkStartt中提供的一一些例子:执行静态的SQQL语句public strinng GettCustoomerLiist() / 创建Daatabasse对象 Databasse db = DattabaseeFactoory.CrreateDDatab

26、aase(); / 使用SQQL语句创建建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(); 执行存储过程并并传递参数,返返回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更新数数据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格式返返回数据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创建Dattabasee对象创建一个默认的的Databbas

51、e对象象Databasse dbSSvc = DatabbaseFaactoryy.CreaateDattabasee(); 默认的数据库在在配置文件中中: 创建一个实例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); 创建一个具体的的类型的数据据库对象/ Creaate a SQL ddatabaase. SqlDataabase dbSQLL = DaatabasseFacttory.CCreateeDatabbase(DataAAccesssQuickkStartt) ass SqlDDatabaase; 2创建DbCCommannd对象静态的SQL语语句创建一个个DbCommmandDatabasse db = DattabaseeFactoory.CrreateDDatabaase(); string sqlCoommandd = SSelectt

53、 CusttomerIID, LaastNamme, FiirstNaame Frrom Cuustomeers; DbCommaand dbbCommaand = db.GeetSqlSStringgCommaand(sqqlCommmand); 存储过程创建一一个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参数处理Databass

56、e类提供了了如下的方法法,用于参数数的处理:AddParaameterr. 传递参参数给存储过过程 AddInPaarametter. 传传递输入参数数给存储过程程 AddOutPParameeter. 传递输出参参数给存储过过程 GetParaameterrValuee. 得到指指定参数的值值 SetParaameterrValuee. 设定参参数值使用示例如下: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的补充充,它允许你你使用相同的的数据访问代代码来支持不不同的数据库库,您通过改改变配置文件件就在不同的的数据库之间间切换。目前前虽然只提供供SQLSeerv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论