《ASP NET程序設(shè)計(jì)與開發(fā)》課件第7章_第1頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第7章_第2頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第7章_第3頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第7章_第4頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第7章_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

7.1SqlDataSource控件簡介

7.2SqlDataSource控件的配置

7.3列表控件的數(shù)據(jù)綁定

本章小結(jié)

訓(xùn)練任務(wù)7.1SqlDataSource控件簡介7.1.1ASP.NET2.0中的數(shù)據(jù)處理架構(gòu)要了解在ASP.NET2.0中如何通過Web頁面訪問數(shù)據(jù)庫,我們首先需要了解ASP.NET2.0是如何對數(shù)據(jù)進(jìn)行處理的。圖7-1以SqlDataSource控件為例,給出了ASP.NET2.0中的數(shù)據(jù)處理架構(gòu)。圖7-1ASP.NET2.0中的數(shù)據(jù)處理架構(gòu)由圖7-1可以看出,ASP.NET2.0使用SqlDataSource控件作為Web頁面與數(shù)據(jù)庫聯(lián)系的橋梁,使得我們在程序中訪問數(shù)據(jù)庫時不必考慮“如何訪問”的問題,而可以專注于解決“訪問什么”的問題。SqlDataSource控件提供了Web頁面與數(shù)據(jù)庫聯(lián)系的雙向功能,Web控件可以通過數(shù)據(jù)綁定命令與SqlDataSource控件關(guān)聯(lián),而SqlDataSource控件可以通過SelectCommand、UpdateCommand、InsertCommand、DeleteCommand與各種符合OLE標(biāo)準(zhǔn)的數(shù)據(jù)庫進(jìn)行訪問??梢哉f,對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行處理是ASP.NET技術(shù)的核心,而SqlDataSource控件則是數(shù)據(jù)處理的核心。從本章開始到第9章,我們將介紹與數(shù)據(jù)處理相關(guān)的知識,包括SqlDataSource數(shù)據(jù)源控件、GridView控件和DetailsView控件。7.1.2SqlDataSource控件

SqlDataSource控件是ASP.NET2.0中應(yīng)用最為廣泛的控件,該控件能夠與多種常用數(shù)據(jù)庫進(jìn)行交互,并且能夠在數(shù)據(jù)綁定控件的支持下完成多種數(shù)據(jù)訪問任務(wù)。另外,得益于強(qiáng)大的所見即所得功能,在VisualStudio2005集成開發(fā)環(huán)境中,幾乎不需要編寫代碼,就能夠?qū)崿F(xiàn)從連接數(shù)據(jù)源到顯示編輯數(shù)據(jù)等一系列功能,徹底擺脫了編寫大量重復(fù)性代碼的困擾。就控件名稱而言,SqlDataSource控件似乎只能訪問SqlServer數(shù)據(jù)庫,然而實(shí)際情況并非如此,SqlDataSource控件可以訪問任何OLEDB或者符合ODBC標(biāo)準(zhǔn)的數(shù)據(jù)庫。SqlDataSource控件和數(shù)據(jù)綁定控件集成后,能夠容易地將從數(shù)據(jù)源獲取的數(shù)據(jù)顯示在Web頁面上,只需要為SqlDataSource控件設(shè)置數(shù)據(jù)庫連接字符串、SQL語句、存儲過程名稱即可。應(yīng)用程序運(yùn)行時,SqlDataSource控件將根據(jù)設(shè)置的參數(shù)自動連接數(shù)據(jù)源,并且執(zhí)行SQL語句或者存儲過程,然后返回選擇的數(shù)據(jù)記錄集合(假設(shè)使用了Select語句),最后關(guān)閉數(shù)據(jù)庫。以上過程并不需要編寫代碼,只需拖動控件,設(shè)置屬性等,大大降低了工作強(qiáng)度,提高了工作效率。7.1.3SqlDataSource控件的語法結(jié)構(gòu)

用鼠標(biāo)從工具箱的數(shù)據(jù)欄中拖一個SqlDataSource控件到Web頁面上,切換到源視圖,我們可以看到SqlDataSource控件的語法結(jié)構(gòu)如下:

<asp:SqlDataSourceID="SqlDataSource1"runat="server"

ConnectionString="<%$ConnectionStrings:連接字符串%>"

DeleteCommand="DELETEFROM...WHERE..."

InsertCommand="INSERTINTO...VALUES..."

UpdateCommand="UPDATE....SET...WHERE..."

SelectCommand="SELECT...FROM...WHERE...">

<DeleteParameters>

...

</DeleteParameters>

<InsertParameters>

...

</InsertParameters>

<UpdateParameters>

...

</UpdateParameters>

<SelectParameters>

...

</SelectParameters>

</asp:SqlDataSource>

以上語法可以通過SqlDataSource控件的“配置數(shù)據(jù)源”功能來生成。下面具體介紹SqlDataSource控件的配置。7.2SqlDataSource控件的配置在第3章中,我們以拖曳的方式創(chuàng)建了GridView與SqlDataSource控件,系統(tǒng)會自動生成SqlDataSource代碼,非常方便。不過,有時需要針對SqlDataSource進(jìn)行更詳細(xì)的設(shè)置。下面我們將介紹另一種創(chuàng)建GridView與SqlDataSource控件的方法。7.2.1配置SqlDataSource控件的類型和連接字符串

(1)拖曳SqlDataSource控件到Web頁面上,單擊右上角的“配置數(shù)據(jù)源”選項(xiàng),如圖7-2所示。圖7-2拖放SqlDataSource控件到Web頁面上

(2)在打開的對話框中,選擇數(shù)據(jù)連接,如圖7-3所示。這里的連接有兩種形式:一種是使用現(xiàn)有的數(shù)據(jù)庫連接,另外一種可以使用新建連接建立新的數(shù)據(jù)連接,然后選擇這個新建的連接為數(shù)據(jù)連接。新建連接的方法如圖7-4所示,這里不再具體介紹?,F(xiàn)有的數(shù)據(jù)連接可以是以前建立過的連接,也可以是在Web.config文件中配置的ConnectionString節(jié)點(diǎn),在實(shí)際使用中,以后者為主要方式。圖7-3“配置數(shù)據(jù)源”對話框圖7-4新建連接

(3)配置數(shù)據(jù)連接字符串。如果現(xiàn)有的網(wǎng)站解決方案中沒有Web.config文件,則可通過“添加新項(xiàng)”添加一個Web.config文件。去掉文件中現(xiàn)有的“<connectionStrings/>”,添加如下內(nèi)容:

<connectionStrings>

<addname=“second”connectionString="server=localhost; InitialCatalog=second;IntegratedSecurity=true;" providerName="System.Data.SqlClient"/>

???</connectionStrings>

用一<connectionStrings>...</connectionStrings>標(biāo)記可以定義多個連接字符串。每一項(xiàng)由name、connectionString、providerName三個屬性構(gòu)成。其中,name表示該連接字符串的名字,是圖7-3所示的下拉菜單中顯示的名稱;connectionString是連接字符串的核心,它由可選的幾個屬性構(gòu)成。本例所代表的意思是:“server=localhost”表示使用本地數(shù)據(jù)庫服務(wù)器,如果要使用其他數(shù)據(jù)庫服務(wù)器,則需要輸入服務(wù)器的IP;“InitialCatalog=second”表示選擇的數(shù)據(jù)庫名稱;“IntegratedSecurity=true”表示數(shù)據(jù)庫服務(wù)器使用的是Windows集成身份認(rèn)證,如果SqlServer數(shù)據(jù)用的是混合認(rèn)證方式,則要把該處改為相應(yīng)的用戶名和密碼。當(dāng)然,連接字符串中還可以添加其他屬性。7.2.2配置SqlDataSource控件的數(shù)據(jù)訪問方式

SqlDataSource控件提供了如下兩種訪問數(shù)據(jù)的方式:

(1)設(shè)置數(shù)據(jù)訪問來自表或視圖的數(shù)據(jù)。假設(shè)網(wǎng)頁顯示數(shù)據(jù)為單一數(shù)據(jù)表,可以選擇此方式,并且系統(tǒng)會自動生成“選擇”、“添加”、“刪除”、“更新”等SQL語法。

(2)設(shè)置以“存儲過程”或“SQL語句”訪問數(shù)據(jù)。如果網(wǎng)頁顯示數(shù)據(jù)來自多個關(guān)聯(lián)數(shù)據(jù)表,則可選擇此種方式,但是系統(tǒng)無法自動生成“選擇”、“添加”、“更新”、“刪除”等SQL語法,可以使用“查詢生成器”自行生成。圖7-5為在連接字符串設(shè)置好后,單擊“下一步”看到的界面。圖7-5選擇數(shù)據(jù)訪問方式通過上面的介紹,我們了解了SqlDataSource控件的基本概念和數(shù)據(jù)訪問的方式。下面的項(xiàng)目任務(wù)7-1和7-2實(shí)現(xiàn)了為SqlDataSource控件設(shè)置數(shù)據(jù)源。項(xiàng)目任務(wù)7-1設(shè)置數(shù)據(jù)訪問來自存儲過程或SQL語句

【要求】設(shè)置數(shù)據(jù)訪問來自存儲過程或SQL語句。

【步驟】

(1)配置Select語句。如圖7-6所示,選中“指定自定義SQL語句或存儲過程”單選按鈕。圖7-6“配置Select語句”對話框

(2)創(chuàng)建SQL命令。在“配置Select語句”界面,可以選擇使用下列兩種方式來設(shè)置數(shù)據(jù)源:

①?SQL語句。必須自行設(shè)置SELECTUPDATEINSERTDELETE命令,單擊“查詢生成器”按鈕,可進(jìn)入“查詢生成器”對話框協(xié)助創(chuàng)建SQL語句,如圖7-7所示。

②存儲過程。必須在SQLServer中先創(chuàng)建存儲過程,然后選擇存儲過程。圖7-7配置數(shù)據(jù)源窗口

(3)在“查詢生成器”中添加表。單擊“查詢生成器”按鈕后,出現(xiàn)“查詢生成器”對話框,首先必須添加數(shù)據(jù)表,然后單擊“添加”按鈕,如圖7-8所示。圖7-8利用“查詢生成器”添加表

(4)利用“查詢生成器”執(zhí)行查詢。

“查詢生成器”對話框可分為下列幾部分(見圖7-9):

①數(shù)據(jù)表關(guān)聯(lián)圖??梢栽O(shè)置數(shù)據(jù)表的關(guān)聯(lián)以及要顯示的字段。

②設(shè)置排序與WHERE條件。可以設(shè)置排序字段或方向,也可以設(shè)置WHERE子句條件。

③SQL語句。設(shè)置上述兩個項(xiàng)目后生成SQL語句,也可以直接修改。

④“執(zhí)行查詢”按鈕。單擊此按鈕可執(zhí)行SQL語句。

⑤執(zhí)行后的結(jié)果。

⑥“確定”按鈕。圖7-9設(shè)置查詢

(5)生成SQLSelect命令。單擊“確定”按鈕后,返回如圖7-10所示的“配置數(shù)據(jù)源”對話框,還可以設(shè)置其他SQL命令,或者單擊“下一步”按鈕。

(6)單擊“測試查詢”按鈕來測試結(jié)果,確認(rèn)完成后單擊“完成”按鈕,如圖7-11所示。圖7-10生成的SQLSelect命令圖7-11測試查詢項(xiàng)目任務(wù)7-2設(shè)置數(shù)據(jù)訪問來自表或視圖數(shù)據(jù)

【要求】設(shè)置數(shù)據(jù)訪問來自表或視圖數(shù)據(jù)。

【步驟】

(1)選擇數(shù)據(jù)表及字段。選擇數(shù)據(jù)表,然后選擇字段,如圖7-12所示。系統(tǒng)自動生成讀取數(shù)據(jù)的“選擇”的SQL語句。在右方有3個按鈕,說明如下:①WHERE按鈕:設(shè)置WHERE子句條件的參數(shù),在7.2.3節(jié)中會作介紹。②ORDERBY按鈕:設(shè)置排序字段。③?“高級”按鈕:設(shè)置生成INSERTUPDATE以及DELETE的SQL語句。圖7-12“配置數(shù)據(jù)源”對話框

(2)生成添加、刪除、修改數(shù)據(jù)的SQL語句。單擊“高級”按鈕后,會出現(xiàn)如圖7-13所示的對話框,選中“生成INSERT、UPDATE和DELETE語句”復(fù)選框,在此選項(xiàng)中可以生成INSERT、UPDATE和DELETE的SQL選項(xiàng)。圖7-13“高級SQL生成選項(xiàng)”對話框

(3)設(shè)置排序字段。單擊ORDERBY按鈕,打開如圖7-14所示的“添加ORDERBY子句”對話框,在此對話框中可以選擇排序字段及排序方式。圖7-14“添加ORDERBY子句”對話框

(4)單擊“下一步”按鈕,測試查詢。在測試查詢步驟中,可以單擊“測試查詢”按鈕預(yù)覽查詢數(shù)據(jù),然后單擊“完成”按鈕即可,如圖7-15所示。圖7-15測試查詢通過完成以上兩個項(xiàng)目任務(wù),我們可以發(fā)現(xiàn)兩者各有優(yōu)缺點(diǎn),使用第二種方式是一種可視化的操作,比較適合初學(xué)者;使用第一種方式則可以靈活地添加各種SQL語句,如同使用SQLServer企業(yè)管理器一樣方便,比較適合對SQL語句非常熟悉的讀者。因此,我們在學(xué)習(xí)這一部分知識的時候,掌握這兩種方式的設(shè)置都很重要。7.2.3配置WHERE子句

在實(shí)際的開發(fā)過程中,經(jīng)常會進(jìn)行各種各樣的查詢,這就需要我們對SQL語句中的WHERE子句進(jìn)行靈活的配置。如果讀者比較熟悉SQL語句的語法,那么可以直接用7.2.2節(jié)提到的第一種方式進(jìn)行設(shè)置,而對于初學(xué)者而言,用第二種方法更簡單,因?yàn)樗耆强梢暬牟僮?。本?jié)介紹幾個常用的WHERE子句的配置方法。

在Web頁面中添加一個新的SqlDataSource控件,點(diǎn)擊“配置數(shù)據(jù)源”,選擇“second”數(shù)據(jù)連接,打開如圖7-12所示的窗口。在圖7-12中單擊“WHERE”按鈕,可以打開如圖7-16所示的窗口。圖7-16“添加WHERE子句”窗口在圖7-16所示的窗口中,列出了所有已經(jīng)選擇的列,我們可以通過選擇不同的列來設(shè)置相應(yīng)的WHERE子句條件。在列的下方,還有“運(yùn)算符”和“源”兩個選項(xiàng)可以選擇,在當(dāng)前的狀態(tài)下,兩個選項(xiàng)均以灰色顯示,這是因?yàn)檫\(yùn)算符會根據(jù)所選列的數(shù)據(jù)類型不同而發(fā)生改變,而“源”選項(xiàng)需要在選擇列后才能顯示。

“運(yùn)算符”選項(xiàng)中,可選擇的運(yùn)算符取決于數(shù)據(jù)列的定義。對于定義為整數(shù)的數(shù)據(jù)列,可選擇等于(=)、小于(<)、大于(>)、小于等于(<=)、大于等于(>=)或不等于(<>);對于允許空值的數(shù)據(jù)列,還可選擇“ISNULL”和“ISNOTNULL”;對于定義為字符數(shù)據(jù)類型的數(shù)據(jù)列,可選擇“LIKE”和“NOTLIKE”?!霸础边x項(xiàng)中可選擇“None”、“Control”、“Cookie”、“Form”、“Profile”、“QueryString”和“Session”。選擇“None”表示將在搜索條件中使用文本值,在這種情況下,“參數(shù)屬性”元素將只顯示一個“值”字段。選擇任何其他“源”值表示將在搜索條件中使用參數(shù)化值,在這種情況下,“參數(shù)屬性”元素將顯示兩個字段。

通過上面的介紹,我們了解到如果要訪問所需要的數(shù)據(jù),其實(shí)就是配置SQL語句的WHERE子句。下面的項(xiàng)目任務(wù)7-3實(shí)現(xiàn)了SqlDataSource控件的模糊查詢功能。項(xiàng)目任務(wù)7-3實(shí)現(xiàn)SqlDataSource控件的模糊查詢功能

【要求】實(shí)現(xiàn)一個模糊查詢的功能,在TextBox1中輸入需要查詢的標(biāo)題的名稱,在productinfo表中搜索出所有滿足條件的記錄。

【步驟】

(1)添加一個新的Web頁面“7-2.aspx”,拖一個TextBox控件和SqlDataSource控件到Web頁面上,點(diǎn)擊“配置數(shù)據(jù)源”,選擇“second”數(shù)據(jù)連接,點(diǎn)擊“下一步”,選擇數(shù)據(jù)表的名稱“productinfo”表,選擇所有的數(shù)據(jù)列(如圖7-17所示),然后點(diǎn)擊“WHERE”按鈕,打開“添加WHERE子句”對話框。圖7-17選擇productinfo表的所有列

(2)在打開的窗口中配置相應(yīng)的參數(shù),如圖7-18所示。

(3)在“添加WHERE子句”對話框中單擊“添加”按鈕,然后單擊“確定”完成操作,如圖7-19所示。圖7-18配置Control查詢圖7-19完成“添加WHERE子句”操作當(dāng)然,在該項(xiàng)目任務(wù)中我們還沒有把結(jié)果顯示出來,在第8章的介紹中,我們可以用GridView控件把結(jié)果顯示在Web頁面上。在這個項(xiàng)目中,我們可以發(fā)現(xiàn)在ASP.NET中配置WHERE子句非常方便,除了本項(xiàng)目以外,還可以通過選擇不同的“源”選項(xiàng)來實(shí)現(xiàn)各種復(fù)雜的查詢。靈活地配置WHERE子句是學(xué)習(xí)ASP.NET過程中需要掌握的一項(xiàng)重要技巧,讀者應(yīng)在使用過程中不斷地積累,只有這樣才能開發(fā)出符合各種要求的復(fù)雜查詢。7.3列表控件的數(shù)據(jù)綁定在ASP.NET中有許多控件可以進(jìn)行數(shù)據(jù)綁定(DataBind),這些控件包括DropDownList、ListBox、CheckBoxList、BulletedList、RadioButtonList等。這些控件既可以由開發(fā)人員手動編輯數(shù)據(jù),也可以通過設(shè)置與數(shù)據(jù)庫字段實(shí)現(xiàn)綁定,并且可以添加事件,判斷用戶的選擇,其功能十分強(qiáng)大。這些控件都有以下三個共同的屬性:

(1)?DataSourceID:數(shù)據(jù)源控件ID。

(2)?DataTextField:設(shè)置控件顯示的字段。

(3)?DataValueField:設(shè)置控件值的字段。下面首先介紹如何創(chuàng)建列表控件。

(1)創(chuàng)建新網(wǎng)頁7-3.aspx。

(2)將控件拖曳到設(shè)計(jì)窗口。將CheckBoxList、ListBox、BulletedList、RadioButtonList、DropDownList控件拖曳到設(shè)計(jì)窗口,如圖7-20所示。

(3)對SqlDataSource進(jìn)行配置。選擇Catalogs表中的所有字段,如圖7-21所示。圖7-20將控件拖曳到設(shè)計(jì)窗口圖7-21配置數(shù)據(jù)源為Catalogs中的所有字段

(4)設(shè)置“選擇數(shù)據(jù)源”對話框,如圖7-22所示。這里需要注意的是,“選擇要在DropDownList中顯示的數(shù)據(jù)字段”和“為DropDownList的值選擇數(shù)據(jù)字段”是兩個不同的概念,一般在設(shè)置的時候把兩者設(shè)為一致,其實(shí)可以設(shè)置為不同的兩個字段。其中,“選擇要在DropDownList中顯示的數(shù)據(jù)字段”對應(yīng)的是“DropDownList1.SelectedItem.Text”屬性,而“為DropDownList的值選擇數(shù)據(jù)字段”對應(yīng)的是“DropDownList1.SelectedValue”,請讀者仔細(xì)體會兩者的區(qū)別。圖7-22選擇數(shù)據(jù)源

(5)設(shè)置其他控件。根據(jù)上一步設(shè)置CheckBoxList、ListBox、BulletedList、RadioButtonList等控件的數(shù)據(jù)綁定。

(6)按F5鍵,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論