熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

使用ADO.NET2.0提升數據交互性能(1)

2013-11-13 09:45:57  來源: .NET編程 
 這篇文章起源於在公司寫的一個PPT但是由於PPT本身的限制很多內容無法表達或是詳細的解釋於是變下定了決心寫篇文檔!

  在這篇文章裡我將盡量簡單的描述下ADONET 的新特性尤其是配合SQL Server 所展現出來的強大實力如果想進一步了解ADONET 編程方面的話可以去閱讀Glenn Johnson的ADONET 高級編程[微軟推薦叢書] 定價:網絡購書的話打了折只要塊就可以了


  一功能強大的ADO

  年底(月)與 SQL Server 一起出現的是 NET Framework 版本其中用來訪問數據庫的 ADONET類也升級到 ADONET


  ADONET 除了增強舊功能外也提供了相當多的新功能包含了以基礎類為本(baseclassbased)的數據源提供程序(provider)模型異步訪問架構批處理更新與大量數據復制(bulk copy)SQL Server 的回調通知單一連接同時多執行結果集(MARS)執行統計強化的 DataSet 類等等換句話說若要有效發揮 SQL Server 的功能前端應用程序最好用 ADONET 來開發


  ADONET 提供了相當多的新增功能一些與數據源提供程序無關也就是訪問各種數據庫都可以用到的功能但有很大的一部分是專屬於 SQL Server 針對 SQL Server 的新功能提供給前端應用程序開發使用


  二: 使用多數據結果集(僅限)

  在之前版本的 SQL Server 同一時間一條連接只能傳遞一個 SELECT 語法執行後返回的結果集如果想在一次連接後返回多個查詢內容只能使用類似如下的方法來實現

  SqlDataAdapter myDataAdapter = new SqlDataAdapter(StoredProcedureNamemyConnection); myDataAdapterSelectCommandCommandType = CommandTypeStoredProcedure; myDataAdapterSelectCommandParametersAdd(@sqlstrsqlstr); DataSet ds = new DataSet(); myDataAdapterFill(ds); return ds; dsTables[]dsTables[]dsTables[]分別對應三個結果集

  SQL Server 提供了在同一條連接上可以同時傳遞多個沒有游標結構(cursorless)的結果集(也稱為默認結果集)此功能稱為 Multiple Active Resultsets(MARS)如此可以節省需要同時打開的連接數但要注意的是連接字符串設置要加上 MultipleActiveResultSets=true 屬性否則默認不啟動多數據結果集的功能

  string connstr = server=(local);database=northwind;integrated security=true; ; SqlConnection conn = new SqlConnection(connstr); connOpen(); SqlCommand cmd = new SqlCommand(select * from customers conn); SqlCommand cmd = new SqlCommand(select * from orders conn); SqlDataReader rdr = cmdExecuteReader(); // next statement causes an error prior to SQL Server SqlDataReader rdr = cmdExecuteReader(); // now you can reader from rdr and rdr at the same time


 
From:http://tw.wingwit.com/Article/program/net/201311/11529.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.