讀者講解ADO.NET新特性相關(guān)介紹
本文介紹ADO.NET是.NET應(yīng)用程序中用于處理數(shù)據(jù)庫(kù)數(shù)據(jù)的首選技術(shù),介紹了ADO.NET新特性、使用DataSet保存和操作數(shù)據(jù)、使用DataAdapter連接不同的數(shù)據(jù)源的最新技術(shù)。
ADO.NET新特性對(duì)XML的強(qiáng)大支持、在.NET應(yīng)用程序中使用ADO.NET的時(shí)機(jī)和位置、利用ADO.NET使用Web服務(wù)的方式等,這些都是我們?cè)?NET應(yīng)用程序開發(fā)過(guò)程中要重點(diǎn)關(guān)注的方面。
本書適合熟悉C#基礎(chǔ)編程知識(shí),具有使用Visual Studio.NET和C#命令行編譯器的經(jīng)驗(yàn),并希望掌握如何在.NET應(yīng)用程序使用ADO.NET技術(shù)的中高級(jí)開發(fā)人員。
本書詳細(xì)介紹了ADO.NET新特性、使用DataSet保存和操作數(shù)據(jù)、使用DataAdapter連接不同的數(shù)據(jù)源的最新技術(shù)、ADO.NET對(duì)XML的強(qiáng)大支持、在.NET應(yīng)用程序中使用ADO.NET的時(shí)機(jī)和位置、ADO.NET新特性使用Web服務(wù)的方式等,這些都是我們?cè)?NET應(yīng)用程序開發(fā)過(guò)程中要重點(diǎn)關(guān)注的方面。
在 ASP.NET 之前,通過(guò)多次回傳將值恢復(fù)到窗體字段中完全是頁(yè)面開發(fā)人員的事,他們將不得不從 HTTP 窗體中逐個(gè)拾取回傳值,然后再將其推回字段中。幸運(yùn)的是,現(xiàn)在 ASP.NET 可以自動(dòng)完成這項(xiàng)任務(wù),從而為開發(fā)人員免除了一項(xiàng)令人厭煩的工作,同時(shí)也無(wú)需再為窗體編寫大量的代碼。
但這并不是 ViewState。ADO.NET新特性是一種機(jī)制,ASP.NET 使用這種機(jī)制來(lái)跟蹤服務(wù)器控件狀態(tài)值,否則這些值將不作為 HTTP 窗體的一部分而回傳。例如,由 Label 控件顯示的文本默認(rèn)情況下就保存在 ViewState 中。作為開發(fā)人員,您可以綁定數(shù)據(jù),或在首次加載該頁(yè)面時(shí)僅對(duì) Label 編程設(shè)置一次,在后續(xù)的回傳中,該標(biāo)簽文本將自動(dòng)從 ViewState 中重新填充。#t#
因此,除了可以減少繁瑣的工作和代碼外,ViewState 通常還可以減少數(shù)據(jù)庫(kù)的往返次數(shù)。不過(guò)ViewState 確實(shí)沒有什么神秘之處,它是由 ASP.NET 頁(yè)面框架管理的一個(gè)隱藏的窗體字段。當(dāng) ASP.NET 執(zhí)行某個(gè)頁(yè)面時(shí),該頁(yè)面上的 ViewState 值和所有控件將被收集并格式化成一個(gè)編碼字符串,然后被分配給隱藏窗體字段的值屬性(即 <input type=hidden>)。
由于隱藏窗體字段是發(fā)送到客戶端的頁(yè)面的一部分,所以 ADO.NET新特性被臨時(shí)存儲(chǔ)在客戶端的瀏覽器中。如果客戶端選擇將該頁(yè)面回傳給服務(wù)器,則 ViewState 字符串也將被回傳?;貍骱?,ASP.NET 頁(yè)面框架將解析 ViewState 字符串,并為該頁(yè)面和各個(gè)控件填充 ViewState 屬性。然后,控件再使用 ViewState 數(shù)據(jù)將自己重新恢復(fù)為以前的狀態(tài)。