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