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