驚奇的ADO.NET安裝技巧與步驟進(jìn)行說明
ADO.NET作為一個(gè)高效的.NET程序語言。其混合了函數(shù)語言和物件導(dǎo)向程序編制語言,并且完美的適用于編程、算法、技術(shù)和探索性開發(fā),因此可以在使用的過程當(dāng)中感受到趣味性和吸引力。
使用強(qiáng)類型DataSet的好處
使用DataSet的另一個(gè)好處是ADO.NET安裝能被繼承用于建立強(qiáng)類型的DataSet。強(qiáng)類型DataSet的好處包括設(shè)計(jì)時(shí)的檢查和強(qiáng)類型DataSet 的Visual Studio .NET語句填充。當(dāng)你為DataSet固定了大綱或關(guān)系結(jié)構(gòu)時(shí),就能建立強(qiáng)類型DataSet,把行和列作為對(duì)象的屬性而不是項(xiàng)的集合。
例如,作為暴露顧客表的某一行的列名的代替,你可以暴露Customer對(duì)象的 Name屬性。強(qiáng)類型的DataSet衍生自DataSet類,因此不會(huì)犧牲DataSet的任何功能,也就是說,強(qiáng)類型的DataSet也可以是遠(yuǎn)程的,并作為數(shù)據(jù)綁定控件(例如DataGrid)的數(shù)據(jù)源提供。如果不知道大綱,ADO.NET安裝也能通過使用通常的DataSet獲得好處,但是喪失了強(qiáng)類型DataSet的附加特性。#t#
在強(qiáng)類型DataSet中處理空值
使用強(qiáng)類型DataSet時(shí),你能給DataSet 的XML大綱定義語言(XSD)作注解以確保強(qiáng)類型DataSet正確的處理空(Null)的引用??罩担╪ullValue)注釋使你能用String.Empty這個(gè)特定值代替DBNull、保持了空引用、或者產(chǎn)生一個(gè)異常。ADO.NET安裝選擇其中的哪個(gè)依賴于應(yīng)用程序的內(nèi)容,默認(rèn)情況下遇到空引用將產(chǎn)生一個(gè)異常。
刷新DataSet中的數(shù)據(jù)
如果你希望使用更新后的值從服務(wù)器刷新數(shù)據(jù)集中的值,使用DataAdapter.Fill。如果主鍵定義在數(shù)據(jù)表上,DataAdapter.Fill基于主鍵匹配新行,并把服務(wù)器的數(shù)據(jù)改成已存在的行。被刷新行的RowState設(shè)置為Unchanged,即使在刷新前它被修改過。注意如果給數(shù)據(jù)表定義了主鍵,DataAdapter.Fill添加新行可能重復(fù)主鍵值。
如果希望用服務(wù)器的當(dāng)前值刷新一個(gè)表,并且保持表中行的改變,ADO.NET安裝你必須首選使用DataAdapter.Fill組合它,填充一個(gè)新的數(shù)據(jù)表,接著將該數(shù)據(jù)表合并(Merge)進(jìn)一個(gè)數(shù)據(jù)集,并把preserveChanges值設(shè)為true。
在DataSet中搜索數(shù)據(jù)
在一個(gè)數(shù)據(jù)集中查詢符合特定條件的行時(shí),使用基于索引(index-based)的查看表將提高性能。給數(shù)據(jù)表指定主鍵(PrimaryKey)值時(shí),就建立了一個(gè)索引。當(dāng)為數(shù)據(jù)表建立數(shù)據(jù)視圖(DataView)時(shí)也建立了索引。ADO.NET安裝下面是一些使用基于索引查看的技巧:
如果查詢是在數(shù)據(jù)表的主鍵列上進(jìn)行的,使用DataTable.Rows.Find代替DataTable.Select。
查詢非主鍵列,可以使用數(shù)據(jù)視圖來提高多個(gè)數(shù)據(jù)查詢的速度。當(dāng)給數(shù)據(jù)視圖添加排序時(shí),將建立搜索時(shí)使用的索引。數(shù)據(jù)視圖暴露了查詢下層數(shù)據(jù)表的Find和FindRows方法。
如果你不是查詢表的排序視圖,也可以通過為數(shù)據(jù)表建立數(shù)據(jù)視圖獲得基于索引的查看表的好處。ADO.NET安裝注意如果你執(zhí)行數(shù)據(jù)上的多個(gè)查詢這是唯一的好處。如果你只執(zhí)行單個(gè)查詢,需要建立索引的過程將因?yàn)槭褂盟饕档土诵阅堋?nbsp;
數(shù)據(jù)視圖(DataView)結(jié)構(gòu)
當(dāng)數(shù)據(jù)視圖建立后,并且當(dāng)Sort、RowFilter或RowStateFilter或者屬性被修改時(shí),數(shù)據(jù)視圖為下層數(shù)據(jù)表中的數(shù)據(jù)建立索引。當(dāng)建立數(shù)據(jù)視圖對(duì)象時(shí),使用把Sort、RowFilter和RowStateFilter值作為參數(shù)的數(shù)據(jù)視圖構(gòu)造函數(shù)。ADO.NET安裝結(jié)果是建立了一次索引。建立"空"數(shù)據(jù)視圖,然后設(shè)置Sort、RowFilter和RowStateFilter屬性將導(dǎo)致至少兩次建立索引。