這篇文章起源於在公司寫的一個PPT
但是由於PPT本身的限制很多內容無法表達或是詳細的解釋
於是變下定了決心
寫篇文檔!
在這篇文章裡我將盡量簡單的描述下ADO
NET
的新特性
尤其是配合SQL Server
所展現出來的強大實力
如果想進一步了解ADO
NET
編程方面的話
可以去閱讀Glenn Johnson的
ADO
NET
高級編程[微軟推薦叢書]
定價:
元
網絡購書的話打了折只要
塊就可以了
一
功能強大的ADO
年底(
年
月)與 SQL Server
一起出現的是
NET Framework
版本
其中用來訪問數據庫的 ADO
NET類也升級到 ADO
NET
版
ADO
NET
除了增強舊功能外
也提供了相當多的新功能
包含了以基礎類為本(base
class
based)的數據源提供程序(provider)模型
異步訪問架構
批處理更新與大量數據復制(bulk copy)
SQL Server
的回調通知
單一連接同時多執行結果集(MARS)
執行統計
強化的 DataSet 類等等
換句話說
若要有效發揮 SQL Server
的功能
前端應用程序最好用 ADO
NET
來開發
ADO
NET
提供了相當多的新增功能
一些與數據源提供程序無關
也就是訪問各種數據庫都可以用到的功能
但有很大的一部分是專屬於 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)
如此可以節省需要同時打開的連接數
但要注意的是連接字符串設置要加上 MultipleAct
iveResultSets=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