亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

DataReader、DataSet、DataAdapter和DataView使用介紹

2020-01-24 03:38:09
字體:
來源:轉載
供稿:網友
ADO.NET提供兩個對象用于檢索關系型數據并把它存儲在內存中,分別是DataSet和DataReader。DataSet提供內存中關系數據的表現--包括表和次序、約束等表間的關系的完整數據集合。DataReader提供快速、只向前、只讀的來自數據庫的數據流。

使用DataSet時,一般使用DataAdapter(也可能是CommandBuilder)與數據源交互,用DataView對DataSet中的數據進行排序和過濾。DataSet可以被繼承來建立強化類型的DataSet,用于暴露表、行、列作為強化類型對象屬性。
下面的內容包含什么時候使用DataSet或DataReader,以及怎樣優化訪問它們所包含的數據,也包括怎樣優化DataAdapter和DataView的使用(也包括CommandBuilder)。
DataSet與DataReader的對比
在設計應用程序時,決定使用DataSet還是DataReader需要考慮應用程序需要的功能。

使用DataSet是為了實現應用程序的下述功能
l 操作結果中的多個分離的表。
2 操作來自多個源(例如來自多個數據庫、XML文件和電子表格的混合數據)的數據。
3 在層之間交換數據或使用XML Web服務。與DataReader 不同,DataSet能被傳遞到遠程客戶端。
4 通過緩沖重復使用相同的行集合以提高性能(例如排序、搜索或過濾數據)。
5 每行執行大量的處理。在使用DataReader返回的行上進行擴展處理將使連接存在的時間比必要的更長,從而降低效率。
6 使用XML操作(例如XSLT轉換和Xpath查詢)維護數據。

在應用程序需要以下功能時使用DataReader
l 不需要緩沖數據。
2 正在處理的結果集太大而不能全部放入內存中。
3 需要迅速一次性訪問數據,采用只向前的只讀的方式。
注意:當填充DataSet的時候,DataAdapter使用DataReader。因此使用DataAdapter代替DataSet獲得的性能是節約了DataSet消耗的內存和組裝DataSet所需要的周期。這種性能的提高大部分是有名無實的,因此你應該根據需要的功能為基礎來做設計決定。

使用強類型DataSet的好處
使用DataSet的另一個好處是它能被繼承用于建立強類型的DataSet。強類型DataSet的好處包括設計時的檢查和強類型DataSet 的Visual Studio .NET語句填充。當你為DataSet固定了大綱或關系結構時,就能建立強類型DataSet,把行和列作為對象的屬性而不是項的集合。例如,作為暴露顧客表的某一行的列名的代替,你可以暴露Customer對象的 Name屬性。強類型的DataSet衍生自DataSet類,因此不會犧牲DataSet的任何功能,也就是說,強類型的DataSet也可以是遠程的,并作為數據綁定控件(例如DataGrid)的數據源提供。如果不知道大綱,也能通過使用通常的DataSet獲得好處,但是喪失了強類型

DataSet的附加特性
在強類型DataSet中處理空值
使用強類型DataSet時,你能給DataSet 的XML大綱定義語言(XSD)作注解以確保強類型DataSet正確的處理空(Null)的引用??罩担╪ullValue)注釋使你能用String.Empty這個特定值代替DBNull、保持了空引用、或者產生一個異常。選擇其中的哪個依賴于應用程序的內容,默認情況下遇到空引用將產生一個異常。

刷新DataSet中的數據
如果你希望使用更新后的值從服務器刷新數據集中的值,使用DataAdapter.Fill。如果主鍵定義在數據表上,DataAdapter.Fill基于主鍵匹配新行,并把服務器的數據改成已存在的行。被刷新行的RowState設置為Unchanged,即使在刷新前它被修改過。注意如果給數據表定義了主鍵,DataAdapter.Fill添加新行可能重復主鍵值。
如果希望用服務器的當前值刷新一個表,并且保持表中行的改變,你必須首選使用DataAdapter.Fill組合它,填充一個新的數據表,接著將該數據表合并(Merge)進一個數據集,并把preserveChanges值設為true。

在DataSet中搜索數據
在一個數據集中查詢符合特定條件的行時,使用基于索引(index-based)的查看表將提高性能。給數據表指定主鍵(PrimaryKey)值時,就建立了一個索引。當為數據表建立數據視圖(DataView)時也建立了索引。下面是一些使用基于索引查看的技巧:
如果查詢是在數據表的主鍵列上進行的,使用DataTable.Rows.Find代替DataTable.Select。
查詢非主鍵列,可以使用數據視圖來提高多個數據查詢的速度。當給數據視圖添加排序時,將建立搜索時使用的索引。數據視圖暴露了查詢下層數據表的Find和FindRows方法。
如果你不是查詢表的排序視圖,也可以通過為數據表建立數據視圖獲得基于索引的查看表的好處。注意如果你執行數據上的多個查詢這是唯一的好處。如果你只執行單個查詢,需要建立索引的過程將因為使用索引而降低了性能。

數據視圖(DataView)結構
當數據視圖建立后,并且當Sort、Ro
使用DataReader、DataSet、DataAdapter和DataView
ADO.NET提供兩個對象用于檢索關系型數據并把它存儲在內存中,分別是DataSet和DataReader。DataSet提供內存中關系數據的表現--包括表和次序、約束等表間的關系的完整數據集合。DataReader提供快速、只向前、只讀的來自數據庫的數據流。

使用DataSet時,一般使用DataAdapter(也可能是CommandBuilder)與數據源交互,用DataView對DataSet中的數據進行排序和過濾。DataSet可以被繼承來建立強化類型的DataSet,用于暴露表、行、列作為強化類型對象屬性。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国模精品视频一区二区三区| 一区二区三区四区精品| 国产精品一区久久久| 久久久久久亚洲精品中文字幕| 欧美成人第一页| 日本亚洲欧洲色α| 日韩精品视频在线播放| 国产精品久久久久久久久久新婚| 91探花福利精品国产自产在线| 国产精品电影网| 国产精品久久久久久久av大片| 亚洲91av视频| 啊v视频在线一区二区三区| 精品日韩中文字幕| 91精品在线影院| 国产欧美日韩免费| 精品激情国产视频| 91精品久久久久久久久青青| 精品无人区乱码1区2区3区在线| 久久久免费观看视频| 98视频在线噜噜噜国产| 久久夜色精品国产亚洲aⅴ| 欧美xxxx18性欧美| 尤物yw午夜国产精品视频明星| 日韩动漫免费观看电视剧高清| 国产精品白丝av嫩草影院| 色偷偷噜噜噜亚洲男人| 欧洲亚洲免费视频| 色伦专区97中文字幕| 欧美自拍视频在线观看| 亚洲在线视频观看| 亚洲三级免费看| 91精品久久久久久久久中文字幕| 欧美洲成人男女午夜视频| 国内精品小视频| 国产精品网站入口| 国产在线精品一区免费香蕉| 久久久www成人免费精品| 成人国产亚洲精品a区天堂华泰| 黑人巨大精品欧美一区二区一视频| 伊人亚洲福利一区二区三区| 欧美成人精品影院| 欧美激情综合色综合啪啪五月| 欧美国产一区二区三区| 日韩av在线网页| 欧美精品久久久久久久| 欧美国产精品va在线观看| 亚洲天堂网在线观看| 久久久久久久色| 亚洲欧美日韩天堂一区二区| 91国产美女视频| 亚洲综合av影视| 超碰97人人做人人爱少妇| 欧美国产日韩一区二区三区| 国产色视频一区| 日韩欧美在线视频日韩欧美在线视频| 国产一区二区在线免费视频| 国产精品va在线| 国产精品aaaa| 色伦专区97中文字幕| 日韩精品免费看| 亚洲一区二区中文字幕| 欧美日本亚洲视频| 国产婷婷成人久久av免费高清| 久久国产一区二区三区| 欧美野外猛男的大粗鳮| 亚洲欧美中文字幕| 午夜精品久久久久久久男人的天堂| 欧美有码在线观看视频| 国产精品久久久999| 亚洲视频在线看| 欧美日韩免费在线| 欧美日韩激情网| 国产成人小视频在线观看| 精品激情国产视频| 久久99久久99精品中文字幕| 国产精品久久久久999| 国产成人综合精品| 亚洲电影av在线| 国产精品午夜一区二区欲梦| 亚洲色图第一页| 久久视频在线播放| 日韩欧美极品在线观看| 91国内揄拍国内精品对白| 亚洲国产古装精品网站| 欧美在线视频一区二区| 国模精品视频一区二区三区| 欧美成人午夜激情| 国产成人福利视频| 日本不卡免费高清视频| 岛国精品视频在线播放| 日韩av免费看| 亚洲综合在线做性| 欧美一二三视频| 亚洲电影天堂av| 欧美专区在线视频| 日韩国产一区三区| 久久中文字幕视频| 日韩一级裸体免费视频| 91精品国产综合久久香蕉的用户体验| 一区二区日韩精品| 欧美整片在线观看| 色噜噜狠狠狠综合曰曰曰| 欧美疯狂做受xxxx高潮| 国产综合在线看| 欧美精品做受xxx性少妇| 国产剧情久久久久久| 国产精品永久免费在线| 一本一本久久a久久精品牛牛影视| 亚洲国产天堂久久综合| 98精品国产高清在线xxxx天堂| 国产成人av在线| www.日本久久久久com.| 久久人人爽人人爽人人片av高请| 日产日韩在线亚洲欧美| 最新国产成人av网站网址麻豆| 欧美性猛交xxxx乱大交极品| 中文字幕日本欧美| 91精品美女在线| 精品久久久久久久中文字幕| 91亚洲精品一区| 中文字幕日韩综合av| 97国产一区二区精品久久呦| 69国产精品成人在线播放| 这里精品视频免费| 欧美日韩亚洲成人| 国产精品偷伦视频免费观看国产| 日韩欧美在线视频日韩欧美在线视频| 91免费精品国偷自产在线| 成人午夜激情免费视频| 国产日韩在线精品av| 97成人精品区在线播放| 精品久久久精品| 久久青草精品视频免费观看| 高清一区二区三区四区五区| 高清在线视频日韩欧美| 亚洲天堂av在线免费| 欧美日韩第一视频| 久久久久久久久久婷婷| 色综合老司机第九色激情| 懂色av一区二区三区| 欧美xxxx做受欧美.88| 欧美又大粗又爽又黄大片视频| 国产主播喷水一区二区| 欧美日韩在线影院| 亚洲精品自拍第一页| 国产成人精品在线播放| 国产欧美欧洲在线观看| 久久夜色精品亚洲噜噜国产mv| 久久久之久亚州精品露出| 26uuu亚洲伊人春色| 久久在线免费观看视频| 亚洲乱码av中文一区二区| 欧美成年人网站| 亚洲国产精品va在线看黑人| 欧美尤物巨大精品爽| 中文字幕一精品亚洲无线一区| 97热精品视频官网| 亚洲片在线资源| 欧美性受xxxx黑人猛交| 91精品国产91久久久久| 亚洲性日韩精品一区二区| 亚洲无av在线中文字幕| 国产一区二区三区欧美|