使用網(wǎng)頁(yè)軟件進(jìn)行ADO.NET分頁(yè)
上周在公司使用以下就結(jié)合TextBox組件和DataGrid組件分別探討DataSet在實(shí)現(xiàn)簡(jiǎn)單型數(shù)據(jù)綁定和復(fù)雜性數(shù)據(jù)綁定作用和具體實(shí)現(xiàn)方法,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
大家都知道在Dreamwerver中可以很方便地實(shí)現(xiàn)記錄集的分頁(yè)顯示,但是生成的代碼的確很龐大,影響了網(wǎng)頁(yè)的顯示速度,看起來(lái)?xiàng)l理也不是很清晰,那么,可不可以用簡(jiǎn)單的方式實(shí)現(xiàn)同樣的功能呢?當(dāng)然可以,筆者通過(guò)以下一些簡(jiǎn)單的代碼就實(shí)現(xiàn)了記錄集的分頁(yè)顯示,現(xiàn)在拿出來(lái)大家一起分享。
ADO.NET分頁(yè)經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET分頁(yè)了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。ADO.NET數(shù)據(jù)庫(kù)提供程序包含Connection、Command、DataAdapter和DataReader對(duì)象。在一般的ADO.NET編程中,首先要?jiǎng)?chuàng)建Connection對(duì)象,給它提供需要的信息,例如連接字符串。然后創(chuàng)建一個(gè)Command對(duì)象,給它提供要執(zhí)行的SQL命令的細(xì)節(jié)。這個(gè)命令可以是內(nèi)置的SQL文本命令、存儲(chǔ)過(guò)程或?qū)Ρ淼闹苯釉L問(wèn)。如果需要,還可以為這些命令提供參數(shù)。#t#
在創(chuàng)建Connection和Command對(duì)象后,就必須確定命令是否返回結(jié)果集。如果命令不返回結(jié)果集,ADO.NET分頁(yè)就可以通過(guò)調(diào)用幾個(gè)Execute方法之一,執(zhí)行命令。另一方面,如果命令返回結(jié)果集,就必須確定是否要保留結(jié)果集,以備將來(lái)在不維持與數(shù)據(jù)庫(kù)的連接的情況下使用。
如果要保留結(jié)果集,就必須創(chuàng)建一個(gè)DataAdapter對(duì)象,用它填充DataSet或DataTable對(duì)象。這些對(duì)象可以在斷開(kāi)連接的模式下維護(hù)其中的信息。但是,如果不想保留結(jié)果集,只是要以快速方式執(zhí)行命令,就可以使用Command對(duì)象創(chuàng)建DataReader對(duì)象。DataReader對(duì)象需要與數(shù)據(jù)庫(kù)的實(shí)時(shí)連接,它是一個(gè)只向前的只讀光標(biāo)。下面我們來(lái)看一個(gè)關(guān)于使用ADO.NET分頁(yè)異步查詢的案例。
- SqlConnection sqlConnection1 = new SqlConnection ( "Data Source=localhost ;Integrated Security=SSPI ;Initial Catalog=Northwind" ) ;
- //創(chuàng)建數(shù)據(jù)連接
- SqlCommand selectCMD = new SqlCommand ( "SELECT CustomerID , CompanyName FROM Customers" , sqlConnection1 ) ;
- //創(chuàng)建并初始化SqlCommand對(duì)象
- SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter ( ) ;
- custDA.SelectCommand = selectCMD ;
- sqlConnection.Open ( ) ;
- //創(chuàng)建SqlDataAdapter對(duì)象,并根據(jù)SelectCommand屬性檢索數(shù)據(jù)
- DataSet dsDataSet1 = new DataSet ( ) ;
- sqlDataAdapter1.Fill ( dsDataSet1 , "Customers" ) ;
- //使用SqlDataAdapter的Fill方法填充DataSet
- sqlConnection.Close ( ) ;
- //關(guān)閉數(shù)據(jù)連接