<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      happyhippy

      這個世界的問題在于聰明人充滿疑惑,而傻子們堅信不疑。--羅素


       

      簡化實現(xiàn)通用數(shù)據(jù)訪問功能的開發(fā)任務(wù)。應(yīng)用程序可以在很多情況下使用應(yīng)用程序塊,例如讀取顯示數(shù)據(jù)、獲得通過應(yīng)用程序?qū)拥臄?shù)據(jù),以及將更改過的數(shù)據(jù)提交回數(shù)據(jù)庫系統(tǒng)等。應(yīng)用程序塊包括對存儲過程和內(nèi)嵌 SQL 以及常見內(nèi)務(wù)處理任務(wù)(例如,管理連接、創(chuàng)建與緩存封裝在應(yīng)用程序塊的方法中的參數(shù))的支持。換句話說,數(shù)據(jù)訪問應(yīng)用程序塊提供對最常用的 ADO.NET 功能的訪問。

      1. 解決的問題:
      (1) 它可以減少編寫樣本代碼以執(zhí)行標(biāo)準(zhǔn)任務(wù)的需要。 
      (2) 它有助于在應(yīng)用程序和整個企業(yè)中維護(hù)一致的數(shù)據(jù)訪問做法。 
      (3) 它可以降低更改物理數(shù)據(jù)庫目標(biāo)的難度。
      (4) 它使開發(fā)人員免于學(xué)習(xí)不同類型數(shù)據(jù)庫的不同編程模型。 
      (5) 將應(yīng)用程序移植到不同類型的數(shù)據(jù)庫時,它可以減少需要重新編寫的代碼數(shù)量。

      2. 使用:
      (1) 使用Enterprise Library Configuration打開應(yīng)用程序配置文件。
      (2) 添加引用:Microsoft.Practices.EnterpriseLibrary.Data.dll
          using Microsoft.Practices.EnterpriseLibrary.Data;
      (3) 創(chuàng)建數(shù)據(jù)庫連接操作類:

         Database db = DatabaseFactory.CreateDatabase("NorthWind");

      (4) 執(zhí)行SQL語句:

          DataSet ds = db.ExecuteDataSet(CommandType.Text,commandText);
          DataReader dr 
      = db.ExecuteReader(CommandType.Text,commandText); 用完后記得要dr.Close();
          
      object result = db.ExecuteScalar(CommandType.Text,commandText);
          
      //或者
          DbCommand dbCommand = db.GetSqlStringCommand(commandText);
          
      object result = db.Execute*(dbCommand);

      (5) 執(zhí)行存儲過程:

          DbCommand dbCommand = db.GetStoredProcCommand(storeProcName);
          db.AddInParameter(dbCommand, 
      "inParam", DbType.Int32, Category);//注意這里和下面不用加@,DAAB會自動加。
          db.AddOutParameter(dbCommand, "outParam", DbType.Int32, Category);
          
      object result = db.Execute*(dbCommand);
          
      object outValue = db.GetParameterValue(dbCommand, "outParam");

      (6) 更新DataSet:

          DbCommand insertCommand = db.GetStoredProcCommand("AddCommand");//可以再添加處理參數(shù),下同
          DbCommand deleteCommand = db.GetStoredProcCommand("DeleteCommand");
          DbCommand updateCommand 
      = db.GetStoredProcCommand("UpdateCommand");
          
      int rowsAffected = db.UpdateDataSet(dataSet, "tableName", insertCommand, updateCommand,
       deleteCommand, UpdateBehavior.Standard);

      (7) 處理事務(wù):

      public bool Transfer(int transactionAmount, int sourceAccount, int destinationAccount)
      {
           
      bool result = false;
           Database db 
      = DatabaseFactory.CreateDatabase();

           
      string sqlCommand = "Command1";
           DbCommand creditCommand 
      = db.GetStoredProcCommand(sqlCommand);

           sqlCommand 
      = "Comand2";
           DbCommand debitCommand 
      = db.GetStoredProcCommand(sqlCommand);

           
      using (DbConnection connection = db.CreateConnection())
           
      {
                connection.Open();
                DbTransaction transaction 
      = connection.BeginTransaction();
                
      try
                
      {
                     db.ExecuteNonQuery(creditCommand, transaction);
                     db.ExecuteNonQuery(debitCommand, transaction);
                     transaction.Commit();
                     result 
      = true;
                }

                
      catch
                
      {
                     transaction.Rollback();
                }

                connection.Close();                
                
      return result;
           }

      }


         

      3. Data Access Application Block 的設(shè)計:

      4. 暫時還沒有搞明白的地方:

      DbCommand dbCommand = db.GetStoredProcCommand(commandTest/storeProcName, productID);
      object value = db.ExecuteScalar(dbCommand);

           Passing the productID value to the commandTest/storeProcName results in parameter discovery being used to correctly establish the parameter information for the productID. Subsequent calls to this method will cause the block to retrieve the parameter information from the cache, and not require rediscovery。
      http://davidhayden.com/blog/dave/archive/2006/11/03/CachingStoredProcedureParameters.aspx
      http://davidhayden.com/blog/dave/archive/2006/11/01/SqlCommandBuilderDeriveParameters.aspx
      貌似是在說對參數(shù)進(jìn)行緩存什么的,但不知道究竟有啥用?真的能提高性能?-_-

      posted on 2007-08-08 20:32  Silent Void  閱讀(1057)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 一 级做人爱全视频在线看| 亚洲人成人网站色www| 亚洲精品香蕉一区二区| 国产学生裸体无遮挡免费| 99久久激情国产精品| 亚洲中文字幕一区二区| 亚洲狠狠婷婷综合久久久| 日韩精品自拍偷拍一区二区| 久久成人影院精品777| 91精品国产老熟女在线| 揭西县| 好看的国产精品自拍视频| 福利一区二区在线播放 | 老子午夜精品无码| 中文字幕日韩区二区三区| 尚志市| 老司机免费的精品视频| 色综合久久久久综合体桃花网| 99久久精品视香蕉蕉| 日本熟妇人妻一区二区三区| 无码熟妇人妻av在线电影| 国产香蕉久久精品综合网| 国产对白老熟女正在播放| 国产不卡一区不卡二区| 亚洲国产欧美日韩另类| 久久精品国产亚洲av热一区| 亚洲国产日韩欧美一区二区三区 | 亚洲国产片一区二区三区| 精品无码一区二区三区的天堂| 久久碰国产一区二区三区| 亚洲成人动漫av在线| 2020年最新国产精品正在播放| 99久久精品国产综合一区| 亚洲AV无码东方伊甸园| 亚洲国产另类久久久精品| 平定县| 国产av国片精品一区二区| 亚洲精品三区四区成人少| 国产精品亚洲精品日韩已满十八小| 精品无码国产一区二区三区av| 论坛|