使用ADO.NET2.0提升數(shù)據(jù)交互性能(1)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:揭秘ASP.NET常用的26個(gè)優(yōu)化性能方法
      1. 數(shù)據(jù)庫訪問性能優(yōu)化  數(shù)據(jù)庫的連接和關(guān)閉 訪問數(shù)據(jù)庫資源需要?jiǎng)?chuàng)建連接、打開連接和關(guān)閉連接幾個(gè)操作。這些過程需要多次與數(shù)據(jù)庫交換信息以通過身份驗(yàn)證,比較耗費(fèi)服務(wù)器資源。ASP.

      前言:

      這篇文章起源于在公司寫的一個(gè)PPT,但是由于PPT本身的限制很多內(nèi)容無法表達(dá)或是詳細(xì)的解釋,于是變下定了決心。寫篇文檔!

      在這篇文章里我將盡量簡(jiǎn)單的描述下ADO.NET 2.0的新特性,尤其是配合SQL Server 2005所展現(xiàn)出來的強(qiáng)大實(shí)力。如果想進(jìn)一步了解ADO.NET 2.0編程方面的話,可以去閱讀Glenn Johnson的--"ADO.NET 2.0高級(jí)編程[微軟推薦叢書] ".定價(jià):46元,網(wǎng)絡(luò)購書的話打了折只要30塊就可以了。

      一:功能強(qiáng)大的ADO2.0

      2005年底(2005年10月)與 SQL Server 2005一起出現(xiàn)的是 .NET Framework 2.0 版本,其中用來訪問數(shù)據(jù)庫的 ADO.NET類也升級(jí)到 ADO.NET 2.0 版。

      ADO.NET 2.0 除了增強(qiáng)舊功能外,也提供了相當(dāng)多的新功能,包含了以基礎(chǔ)類為本(base-class-based)的數(shù)據(jù)源提供程序(provider)模型、異步訪問架構(gòu)、批處理更新與大量數(shù)據(jù)復(fù)制(bulk copy)、SQL Server 2005 的回調(diào)通知、單一連接同時(shí)多執(zhí)行結(jié)果集(MARS)、執(zhí)行統(tǒng)計(jì)、強(qiáng)化的 DataSet 類等等。換句話說,若要有效發(fā)揮 SQL Server 2005 的功能,前端應(yīng)用程序最好用 ADO.NET 2.0 來開發(fā)。

      ADO.NET 2.0 提供了相當(dāng)多的新增功能,一些與數(shù)據(jù)源提供程序無關(guān),也就是訪問各種數(shù)據(jù)庫都可以用到的功能,但有很大的一部分是專屬于 SQL Server 2005,針對(duì) SQL Server 2005 的新功能提供給前端應(yīng)用程序開發(fā)使用。


      二: 使用多數(shù)據(jù)結(jié)果集(僅限2005)

      在之前版本的 SQL Server 同一時(shí)間一條連接只能傳遞一個(gè) SELECT 語法執(zhí)行后返回的結(jié)果集。如果想在一次連接后返回多個(gè)查詢內(nèi)容只能使用類似如下的方法來實(shí)現(xiàn):

      以下為引用的內(nèi)容:

      SqlDataAdapter myDataAdapter = new SqlDataAdapter("StoredProcedureName",myConnection);
      myDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;

      myDataAdapter.SelectCommand.Parameters.Add("@sqlstr",sqlstr);
      DataSet ds = new DataSet();
      myDataAdapter.Fill(ds);
      return ds;
      ds.Tables[0],ds.Tables[1],ds.Tables[2],分別對(duì)應(yīng)三個(gè)結(jié)果集

      SQL Server 2005提供了在同一條連接上可以同時(shí)傳遞多個(gè)沒有游標(biāo)結(jié)構(gòu)(cursorless)的結(jié)果集(也稱為默認(rèn)結(jié)果集),此功能稱為 Multiple Active Resultsets(MARS)。如此可以節(jié)省需要同時(shí)打開的連接數(shù),但要注意的是連接字符串設(shè)置要加上 MultipleAct-iveResultSets=true 屬性,否則默認(rèn)不啟動(dòng)多數(shù)據(jù)結(jié)果集的功能。

      以下為引用的內(nèi)容:

      string connstr = "server=(local);database=northwind;integrated security=true; ";
      SqlConnection conn = new SqlConnection(connstr);
      conn.Open();
      SqlCommand cmd1 = new SqlCommand("select * from customers", conn);
      SqlCommand cmd2 = new SqlCommand("select * from orders", conn);
      SqlDataReader rdr1 = cmd1.ExecuteReader();
      // next statement causes an error prior to SQL Server 2005
      SqlDataReader rdr2 = cmd2.ExecuteReader();
      // now you can reader from rdr1 and rdr2 at the same time.

      分享:解決ASP.NET 2.0中CSS失效的問題
      經(jīng)常有人遇到ASP.NET 2.0(ASP.NET 1.x中可能是有效的)中CSS失效的問題,現(xiàn)將主要原因和解決方法羅列如下: 1、CSS文件路徑不正確 這個(gè)問題屬于Web開發(fā)中的基礎(chǔ)問題,一般采用相對(duì)路徑

      來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2009-09-03
      相關(guān).Net教程