第13章 Web系統(tǒng)的多層結(jié)構(gòu)_第1頁(yè)
第13章 Web系統(tǒng)的多層結(jié)構(gòu)_第2頁(yè)
第13章 Web系統(tǒng)的多層結(jié)構(gòu)_第3頁(yè)
第13章 Web系統(tǒng)的多層結(jié)構(gòu)_第4頁(yè)
第13章 Web系統(tǒng)的多層結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第13章章 Web系統(tǒng)的多層結(jié)構(gòu)系統(tǒng)的多層結(jié)構(gòu)ASP.NET開(kāi)發(fā)的開(kāi)發(fā)的Web系統(tǒng)是基于系統(tǒng)是基于B/S模式的,模式的,Web系統(tǒng)通常是多層架構(gòu)。系統(tǒng)通常是多層架構(gòu)。 13.1 Web系統(tǒng)的三層結(jié)構(gòu)系統(tǒng)的三層結(jié)構(gòu)13.1.1 什么是什么是Web系統(tǒng)的三層結(jié)構(gòu)系統(tǒng)的三層結(jié)構(gòu)將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層業(yè)務(wù)層數(shù)據(jù)訪問(wèn)層數(shù)將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層業(yè)務(wù)層數(shù)據(jù)訪問(wèn)層數(shù)據(jù)庫(kù),明確地將客戶端的表示層、業(yè)務(wù)邏輯訪問(wèn)、數(shù)據(jù)訪問(wèn)及據(jù)庫(kù),明確地將客戶端的表示層、業(yè)務(wù)邏輯訪問(wèn)、數(shù)據(jù)訪問(wèn)及數(shù)據(jù)庫(kù)劃分出來(lái),如圖數(shù)據(jù)庫(kù)劃分出來(lái),如圖13.1所示。所示。其中表示層負(fù)責(zé)直接跟用戶進(jìn)行交互,一般指應(yīng)用程序的其中表示層負(fù)責(zé)直接跟

2、用戶進(jìn)行交互,一般指應(yīng)用程序的界面,用于數(shù)據(jù)錄入,數(shù)據(jù)顯示等。界面,用于數(shù)據(jù)錄入,數(shù)據(jù)顯示等。業(yè)務(wù)邏輯層用于做一些有效性驗(yàn)證業(yè)務(wù)邏輯層用于做一些有效性驗(yàn)證的工作,以更好地保證程序運(yùn)行的健壯的工作,以更好地保證程序運(yùn)行的健壯性。如完成數(shù)據(jù)添加、修改和查詢業(yè)務(wù)性。如完成數(shù)據(jù)添加、修改和查詢業(yè)務(wù)等。等。數(shù)據(jù)訪問(wèn)層用于專門跟數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)訪問(wèn)層用于專門跟數(shù)據(jù)庫(kù)進(jìn)行交互。執(zhí)行數(shù)據(jù)的添加、刪除、修改和交互。執(zhí)行數(shù)據(jù)的添加、刪除、修改和顯示等。顯示等。優(yōu)點(diǎn):優(yōu)點(diǎn):采用分層有利于系統(tǒng)的開(kāi)發(fā)、維護(hù)、部署和擴(kuò)采用分層有利于系統(tǒng)的開(kāi)發(fā)、維護(hù)、部署和擴(kuò)展。采用展。采用“分而治之分而治之”的思想,把問(wèn)題劃分開(kāi)來(lái)各個(gè)解決

3、,的思想,把問(wèn)題劃分開(kāi)來(lái)各個(gè)解決,易于控制,易于延展,易于分配資源。易于控制,易于延展,易于分配資源。13.1.2 Web系統(tǒng)三層結(jié)構(gòu)示例系統(tǒng)三層結(jié)構(gòu)示例通過(guò)一個(gè)典型的例子說(shuō)明如何使用通過(guò)一個(gè)典型的例子說(shuō)明如何使用ASP.NET和和SQL Server 2005來(lái)構(gòu)建一個(gè)三層應(yīng)用。來(lái)構(gòu)建一個(gè)三層應(yīng)用。【例【例12.1】 設(shè)計(jì)一個(gè)用于顯示指定班的所有課程平均分設(shè)計(jì)一個(gè)用于顯示指定班的所有課程平均分的網(wǎng)頁(yè)的網(wǎng)頁(yè)WebForm13-1。解:解:其設(shè)計(jì)過(guò)程如下:其設(shè)計(jì)過(guò)程如下: 整體結(jié)構(gòu)設(shè)計(jì)。采用整體結(jié)構(gòu)設(shè)計(jì)。采用Web三層體系結(jié)構(gòu),用戶表示層三層體系結(jié)構(gòu),用戶表示層對(duì)應(yīng)對(duì)應(yīng)WebForm13-1網(wǎng)頁(yè)

4、,業(yè)務(wù)邏輯層設(shè)計(jì)成網(wǎng)頁(yè),業(yè)務(wù)邏輯層設(shè)計(jì)成DbOp類,數(shù)據(jù)類,數(shù)據(jù)訪問(wèn)層設(shè)計(jì)成訪問(wèn)層設(shè)計(jì)成Database類,如圖類,如圖13.2所示。所示。 數(shù)據(jù)訪問(wèn)層數(shù)據(jù)訪問(wèn)層DAL設(shè)計(jì)。在設(shè)計(jì)。在Myaspnet網(wǎng)站的網(wǎng)站的ch13文件夾文件夾中添加一個(gè)名稱為中添加一個(gè)名稱為WebForm13-1的空網(wǎng)頁(yè)。單擊的空網(wǎng)頁(yè)。單擊“網(wǎng)站網(wǎng)站”中中的的“添加新項(xiàng)添加新項(xiàng)”菜單命令,選中菜單命令,選中“類類”選項(xiàng),建立的類文件選項(xiàng),建立的類文件為為DAL(放在(放在App_Code文件夾中),對(duì)應(yīng)的代碼如下:文件夾中),對(duì)應(yīng)的代碼如下:using System;using System.Data;using Sys

5、tem.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public class Databaseprotected SqlConnection myconn;/保護(hù)的字段保護(hù)的字段 public Database()/構(gòu)造函

6、數(shù)構(gòu)造函數(shù) string mystr; mystr=ConfigurationManager.ConnectionStringsmyconnstring.ToString(); myconn = new SqlConnection(); myconn.ConnectionString = mystr; myconn.Open(); Database()/析構(gòu)函數(shù)析構(gòu)函數(shù) try if (myconn!=null) myconn.Close(); catch public DataSet GetDataset(string mysql) /返回?cái)?shù)據(jù)集返回?cái)?shù)據(jù)集 DataSet myds = ne

7、w DataSet(); SqlDataAdapter myda = new SqlDataAdapter(mysql, myconn); myda.Fill(myds); return myds; 其中包含一個(gè)其中包含一個(gè)Database類,通過(guò)構(gòu)造函數(shù)建立并打開(kāi)連類,通過(guò)構(gòu)造函數(shù)建立并打開(kāi)連接,通過(guò)析構(gòu)函數(shù)關(guān)閉連接,通過(guò)接,通過(guò)析構(gòu)函數(shù)關(guān)閉連接,通過(guò)GetDataset公有方法執(zhí)行公有方法執(zhí)行指定的指定的mysql語(yǔ)句并返回對(duì)應(yīng)的數(shù)據(jù)集。語(yǔ)句并返回對(duì)應(yīng)的數(shù)據(jù)集。 業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層BLL設(shè)計(jì)。單擊設(shè)計(jì)。單擊“網(wǎng)站網(wǎng)站”中的中的“添加新項(xiàng)添加新項(xiàng)”菜單命令,選中菜單命令,選中“類類”選項(xiàng),

8、建立的類文件為選項(xiàng),建立的類文件為BLL(放在(放在App_Code文件夾中),對(duì)應(yīng)的代碼如下:文件夾中),對(duì)應(yīng)的代碼如下:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public clas

9、s DbOP private string bh;/班號(hào)班號(hào)private string retstr;/查找結(jié)果字符串查找結(jié)果字符串public string pbh/班號(hào)屬性班號(hào)屬性set bh = value; public string pretstr/查找結(jié)果字符串屬性查找結(jié)果字符串屬性get return retstr; public void Compute()/計(jì)算指定班的所有課程的平均分計(jì)算指定班的所有課程的平均分 int i = 0;Database db = new Database();string mysql = select 課程名課程名,avg(分?jǐn)?shù)分?jǐn)?shù)) fro

10、m student,score ;mysql += where student.學(xué)號(hào)學(xué)號(hào)=score.學(xué)號(hào)學(xué)號(hào) and student.班號(hào)班號(hào)= + bh.Trim() + group by score.課程名課程名;DataSet myds = db.GetDataset(mysql);if (myds.Tables0.Rows.Count 0)/存在該班的分?jǐn)?shù)記錄時(shí)存在該班的分?jǐn)?shù)記錄時(shí) retstr = 課程名課程名tt平均分平均分n; while (i myds.Tables0.Rows.Count) retstr += myds.Tables0.Rowsi0 + t; retstr

11、+= string.Format(0:n,myds.Tables0.Rowsi1)+n; i+; else retstr = 沒(méi)有該班號(hào)的成績(jī)沒(méi)有該班號(hào)的成績(jī); 用戶表示層用戶表示層UI。這主要是設(shè)計(jì)。這主要是設(shè)計(jì)WebForm13-1網(wǎng)頁(yè),其網(wǎng)頁(yè),其設(shè)計(jì)界面如圖設(shè)計(jì)界面如圖13.3所示,其中包含兩個(gè)所示,其中包含兩個(gè)HTML標(biāo)簽、兩個(gè)文標(biāo)簽、兩個(gè)文本框(本框(TextBox1為單行文本框,為單行文本框,TextBox2為多行文本框)和為多行文本框)和一個(gè)命令按鈕一個(gè)命令按鈕Button1。并設(shè)計(jì)如下事件過(guò)程:。并設(shè)計(jì)如下事件過(guò)程:protected void Button1_Click(ob

12、ject sender, EventArgs e) DbOP mydbop = new DbOP();mydbop.pbh = TextBox1.Text; mydbop.Compute();TextBox2.Text = mydbop.pretstr;該事件過(guò)程將用戶輸入的班號(hào)賦給該事件過(guò)程將用戶輸入的班號(hào)賦給mydbop對(duì)象的對(duì)象的pbh屬性,然后調(diào)用屬性,然后調(diào)用mydbop對(duì)象的對(duì)象的Compute方法產(chǎn)生查詢結(jié)果方法產(chǎn)生查詢結(jié)果字符串,并將其在字符串,并將其在TextBox2文本框中顯示出來(lái)。文本框中顯示出來(lái)。至此,這種三層結(jié)構(gòu)的至此,這種三層結(jié)構(gòu)的Web系統(tǒng)示例設(shè)計(jì)完畢。系統(tǒng)示例設(shè)

13、計(jì)完畢。單擊工具欄中的單擊工具欄中的按鈕運(yùn)行本網(wǎng)頁(yè),輸入按鈕運(yùn)行本網(wǎng)頁(yè),輸入09002班號(hào),班號(hào),單擊單擊“查找查找”命令按鈕,在多行文本框中顯示命令按鈕,在多行文本框中顯示09002班的所班的所有課程的平均分,如圖有課程的平均分,如圖13.4所示。所示。13.2 ObjectDataSource控件控件13.2.1 ObjectDataSource控件和控件和SqlDataSource控件的區(qū)別控件的區(qū)別SqlDataSource等控件極大簡(jiǎn)化了數(shù)據(jù)庫(kù)的訪問(wèn),無(wú)需編等控件極大簡(jiǎn)化了數(shù)據(jù)庫(kù)的訪問(wèn),無(wú)需編寫代碼就可以選擇、更新、插入和刪除數(shù)據(jù)庫(kù)數(shù)據(jù),對(duì)于開(kāi)發(fā)寫代碼就可以選擇、更新、插入和刪除數(shù)據(jù)

14、庫(kù)數(shù)據(jù),對(duì)于開(kāi)發(fā)兩層體系結(jié)構(gòu)(只包含表示層和數(shù)據(jù)訪問(wèn)層)的應(yīng)用程序非常兩層體系結(jié)構(gòu)(只包含表示層和數(shù)據(jù)訪問(wèn)層)的應(yīng)用程序非常容易,適合于規(guī)模較小的應(yīng)用程序,但對(duì)于開(kāi)發(fā)企業(yè)級(jí)多層體容易,適合于規(guī)模較小的應(yīng)用程序,但對(duì)于開(kāi)發(fā)企業(yè)級(jí)多層體系結(jié)構(gòu)的應(yīng)用程序就效果不佳,因?yàn)檫@些數(shù)據(jù)源控件的靈活性系結(jié)構(gòu)的應(yīng)用程序就效果不佳,因?yàn)檫@些數(shù)據(jù)源控件的靈活性欠缺,它們將表示層和業(yè)務(wù)邏輯層混合在一起。欠缺,它們將表示層和業(yè)務(wù)邏輯層混合在一起。ObjectDataSource控件就解決了這一問(wèn)題,它幫助開(kāi)發(fā)人控件就解決了這一問(wèn)題,它幫助開(kāi)發(fā)人員在表示層與數(shù)據(jù)訪問(wèn)層、表示層與業(yè)務(wù)邏輯層之間建立聯(lián)系,員在表示層與數(shù)據(jù)訪問(wèn)

15、層、表示層與業(yè)務(wù)邏輯層之間建立聯(lián)系,從而將來(lái)自數(shù)據(jù)訪問(wèn)層或業(yè)務(wù)邏輯層的數(shù)據(jù)對(duì)象,與表示層中從而將來(lái)自數(shù)據(jù)訪問(wèn)層或業(yè)務(wù)邏輯層的數(shù)據(jù)對(duì)象,與表示層中的數(shù)據(jù)綁定控件綁定,實(shí)現(xiàn)數(shù)據(jù)的選擇、更新或排序等。的數(shù)據(jù)綁定控件綁定,實(shí)現(xiàn)數(shù)據(jù)的選擇、更新或排序等。ObjectDataSource控件可以從控件可以從.aspx網(wǎng)頁(yè)和表示層中抽象網(wǎng)頁(yè)和表示層中抽象出特定的數(shù)據(jù)庫(kù)設(shè)置,并將它們移至多層體系結(jié)構(gòu)中的較低出特定的數(shù)據(jù)庫(kù)設(shè)置,并將它們移至多層體系結(jié)構(gòu)中的較低層,如圖層,如圖13.5所示,其中,所示,其中,ObjectDataSource控件通過(guò)接口對(duì)控件通過(guò)接口對(duì)象或業(yè)務(wù)實(shí)體對(duì)象,將數(shù)據(jù)傳遞給數(shù)據(jù)綁定控件,從

16、而實(shí)現(xiàn)象或業(yè)務(wù)實(shí)體對(duì)象,將數(shù)據(jù)傳遞給數(shù)據(jù)綁定控件,從而實(shí)現(xiàn)各項(xiàng)功能。各項(xiàng)功能。SqlDataSource控件中的控件中的ConnectionString、ProviderName和和SelectCommand屬性在屬性在ObjectDataSource控件中不存在,控件中不存在,相反,它們被替換成告訴相反,它們被替換成告訴ObjectDataSource控件實(shí)例化哪個(gè)控件實(shí)例化哪個(gè)業(yè)務(wù)類以及使用哪個(gè)方法來(lái)查詢業(yè)務(wù)類以及使用哪個(gè)方法來(lái)查詢或修改數(shù)據(jù)的其他屬性,這些業(yè)或修改數(shù)據(jù)的其他屬性,這些業(yè)務(wù)類和方法位于數(shù)據(jù)訪問(wèn)層或業(yè)務(wù)類和方法位于數(shù)據(jù)訪問(wèn)層或業(yè)務(wù)邏輯層中。務(wù)邏輯層中。13.2.2 Objec

17、tDataSource控件的使用方法控件的使用方法ObjectDataSource控件包含的屬性等與控件包含的屬性等與AccessDataSource控件的類似。但增加了若干用于個(gè)性化的控件的類似。但增加了若干用于個(gè)性化的屬性。屬性。若要從業(yè)務(wù)對(duì)象中檢索數(shù)據(jù),需用檢索數(shù)據(jù)的方法的名若要從業(yè)務(wù)對(duì)象中檢索數(shù)據(jù),需用檢索數(shù)據(jù)的方法的名稱設(shè)置稱設(shè)置SelectMethod屬性,該方法通常返回一個(gè)屬性,該方法通常返回一個(gè)DataSet對(duì)象。對(duì)象。如果方法簽名帶參數(shù),可以將如果方法簽名帶參數(shù),可以將Parameter對(duì)象添加到對(duì)象添加到SelectParameters集合,然后將它們綁定到要傳遞給由集合,

18、然后將它們綁定到要傳遞給由SelectMethod方法指定的方法的值。為方法指定的方法的值。為使使ObjectDataSource能夠使用參數(shù),這些參數(shù)必須與方能夠使用參數(shù),這些參數(shù)必須與方法簽名中的參數(shù)名稱和類型相匹配。每次調(diào)用法簽名中的參數(shù)名稱和類型相匹配。每次調(diào)用Select方法時(shí),方法時(shí),ObjectDataSource控件都檢索數(shù)據(jù)。此方法提供對(duì)控件都檢索數(shù)據(jù)。此方法提供對(duì)SelectMethod屬性所指定的方法的編程訪問(wèn)。當(dāng)調(diào)用綁定到屬性所指定的方法的編程訪問(wèn)。當(dāng)調(diào)用綁定到ObjectDataSource的控件的的控件的DataBind方法時(shí),這些控件自動(dòng)方法時(shí),這些控件自動(dòng)調(diào)用調(diào)

19、用SelectMethod屬性指定的方法。如果設(shè)置數(shù)據(jù)綁定控件屬性指定的方法。如果設(shè)置數(shù)據(jù)綁定控件的的DataSourceID屬性,該控件根據(jù)需要自動(dòng)綁定到數(shù)據(jù)源中屬性,該控件根據(jù)需要自動(dòng)綁定到數(shù)據(jù)源中的數(shù)據(jù)。的數(shù)據(jù)。13.3.3 使用使用ObjectDataSource控件關(guān)聯(lián)數(shù)據(jù)訪問(wèn)層和表示層控件關(guān)聯(lián)數(shù)據(jù)訪問(wèn)層和表示層數(shù)據(jù)訪問(wèn)層主要封裝了對(duì)數(shù)據(jù)的存儲(chǔ)、訪問(wèn)和管理。反映數(shù)據(jù)訪問(wèn)層主要封裝了對(duì)數(shù)據(jù)的存儲(chǔ)、訪問(wèn)和管理。反映到組件類中就體現(xiàn)對(duì)數(shù)據(jù)庫(kù)執(zhí)行以下任務(wù)的方法:到組件類中就體現(xiàn)對(duì)數(shù)據(jù)庫(kù)執(zhí)行以下任務(wù)的方法:l 讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄,并將結(jié)果集返回給調(diào)用者。讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄,并將結(jié)果集返

20、回給調(diào)用者。l 在數(shù)據(jù)庫(kù)中修改、刪除和新增數(shù)據(jù)記錄。在數(shù)據(jù)庫(kù)中修改、刪除和新增數(shù)據(jù)記錄。在實(shí)現(xiàn)以上方法的過(guò)程中,必然涉及在實(shí)現(xiàn)以上方法的過(guò)程中,必然涉及SELECT、UPDATE、DELETE和和INSERT等等SQL語(yǔ)句,所涉及的數(shù)據(jù)語(yǔ)句,所涉及的數(shù)據(jù)表可能是單個(gè)表也可能是一組相關(guān)表。表可能是單個(gè)表也可能是一組相關(guān)表。13.3.4 ObjectDataSource控件應(yīng)用示例控件應(yīng)用示例通過(guò)一個(gè)示例說(shuō)明使用通過(guò)一個(gè)示例說(shuō)明使用ObjectDataSource控件設(shè)計(jì)多層控件設(shè)計(jì)多層Web應(yīng)用系統(tǒng)的過(guò)程。應(yīng)用系統(tǒng)的過(guò)程?!纠纠?3.2】 采用采用ObjectDataSource控件設(shè)計(jì)一個(gè)網(wǎng)

21、頁(yè)控件設(shè)計(jì)一個(gè)網(wǎng)頁(yè)WebForm13-2,其功能是在,其功能是在GridView控件中顯示指定班號(hào)的控件中顯示指定班號(hào)的學(xué)生記錄,并可以選擇、更新和刪除記錄,當(dāng)刪除一個(gè)學(xué)生記學(xué)生記錄,并可以選擇、更新和刪除記錄,當(dāng)刪除一個(gè)學(xué)生記錄時(shí)需同時(shí)刪除該生的所有成績(jī)記錄。錄時(shí)需同時(shí)刪除該生的所有成績(jī)記錄。解:解:其設(shè)計(jì)過(guò)程如下:其設(shè)計(jì)過(guò)程如下: 在在Myaspnet網(wǎng)站的網(wǎng)站的ch13文件夾中添加一個(gè)名稱為文件夾中添加一個(gè)名稱為WebForm13-2的空網(wǎng)頁(yè)。單擊的空網(wǎng)頁(yè)。單擊“網(wǎng)站網(wǎng)站”中的中的“添加新項(xiàng)添加新項(xiàng)”菜菜單命令,選中單命令,選中“類類”選項(xiàng),建立的類文件為選項(xiàng),建立的類文件為Studen

22、tDB(放在(放在App_Code文件夾中),對(duì)應(yīng)的代碼如下:文件夾中),對(duì)應(yīng)的代碼如下:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;

23、public class StudentDBpublic StudentDB() /構(gòu)造函數(shù)構(gòu)造函數(shù)public DataSet SelectData(string bh)string mystr, mysql;mystr=ConfigurationManager.ConnectionStringsmyconnstring.ToString();using (SqlConnection myconn = new SqlConnection()myconn.ConnectionString = mystr; myconn.Open(); SqlCommand mycmd = new SqlCom

24、mand(); mycmd.CommandText = SELECT * FROM student WHERE 班號(hào)班號(hào) = sbh; mycmd.Connection = myconn; mycmd.Parameters.Add(sbh, SqlDbType.VarChar, 5).Value = bh; using (SqlDataAdapter myda = new SqlDataAdapter() myda.SelectCommand = mycmd; DataSet myds = new DataSet(); myda.Fill(myds, student);/將將student表填

25、充到表填充到myds中中 return myds; public static void UpdateData(string 學(xué)號(hào)學(xué)號(hào),string 姓名姓名,string 性別性別,string 民族民族,string 班號(hào)班號(hào))string mystr, mysql;mystr=ConfigurationManager.ConnectionStringsmyconnstring.ToString();mysql = UPDATE student SET 姓名姓名=姓名姓名,性別性別=性別性別, 民族民族=民族民族, + 班號(hào)班號(hào) = 班號(hào)班號(hào) WHERE 學(xué)號(hào)學(xué)號(hào)=學(xué)號(hào)學(xué)號(hào);using (

26、SqlConnection myconn = new SqlConnection(mystr)using (SqlCommand mycmd = new SqlCommand(mysql,myconn) mycmd.Parameters.Add(姓名姓名, SqlDbType.VarChar, 10).Value = 姓名姓名; mycmd.Parameters.Add(性別性別, SqlDbType.VarChar, 2).Value = 性別性別; mycmd.Parameters.Add(民族民族, SqlDbType.VarChar, 10).Value = 民族民族; mycmd.P

27、arameters.Add(班號(hào)班號(hào), SqlDbType.VarChar, 6).Value = 班號(hào)班號(hào); mycmd.Parameters.Add(學(xué)號(hào)學(xué)號(hào), SqlDbType.VarChar, 5).Value = 學(xué)號(hào)學(xué)號(hào); myconn.Open(); mycmd.ExecuteNonQuery(); public static void DeleteData(string 學(xué)號(hào)學(xué)號(hào)) string mystr, mysql; mystr=ConfigurationManager .ConnectionStringsmyconnstring.ToString(); mysql =

28、 DELETE FROM student WHERE 學(xué)號(hào)學(xué)號(hào)=學(xué)號(hào)學(xué)號(hào); using (SqlConnection myconn = new SqlConnection(mystr) using (SqlCommand mycmd = new SqlCommand(mysql, myconn) mycmd.Parameters.Add(學(xué)號(hào)學(xué)號(hào), SqlDbType.VarChar, 5).Value = 學(xué)號(hào)學(xué)號(hào); myconn.Open(); mycmd.ExecuteNonQuery(); mysql = DELETE FROM score WHERE 學(xué)號(hào)學(xué)號(hào)=學(xué)號(hào)學(xué)號(hào); using

29、 (SqlCommand mycmd1 = new SqlCommand(mysql, myconn) mycmd1.Parameters.Add(學(xué)號(hào)學(xué)號(hào), SqlDbType.VarChar,5).Value=學(xué)號(hào)學(xué)號(hào); mycmd1.ExecuteNonQuery(); 在本網(wǎng)頁(yè)中放置兩個(gè)在本網(wǎng)頁(yè)中放置兩個(gè)HTML標(biāo)簽,一個(gè)文本框標(biāo)簽,一個(gè)文本框TextBox1、一個(gè)命令按鈕一個(gè)命令按鈕Button1,再將一個(gè),再將一個(gè)ObjectDataSource控件控件ObjectDataSource1拖放到本網(wǎng)頁(yè)中。拖放到本網(wǎng)頁(yè)中。建立建立ObjectDataSource1控件關(guān)聯(lián)數(shù)據(jù)訪問(wèn)層的過(guò)

30、程是,在控件關(guān)聯(lián)數(shù)據(jù)訪問(wèn)層的過(guò)程是,在“ObjectDataSource任務(wù)任務(wù)”列表中單擊列表中單擊“配置數(shù)據(jù)源配置數(shù)據(jù)源”啟動(dòng)啟動(dòng)“配置數(shù)據(jù)源配置數(shù)據(jù)源”向?qū)?。向?qū)А?首先出現(xiàn)首先出現(xiàn)“選擇業(yè)務(wù)對(duì)象選擇業(yè)務(wù)對(duì)象”對(duì)話框,從選擇業(yè)務(wù)對(duì)象下對(duì)話框,從選擇業(yè)務(wù)對(duì)象下拉列表中選擇拉列表中選擇“StudentDB”,如圖,如圖13.6所示,單擊所示,單擊“下一步下一步”按鈕。按鈕。 出現(xiàn)出現(xiàn)“定義數(shù)據(jù)方法定義數(shù)據(jù)方法”對(duì)話框,默認(rèn)為對(duì)話框,默認(rèn)為SELECT選項(xiàng)選項(xiàng)卡,指定與卡,指定與SELECT操作關(guān)聯(lián)并返回?cái)?shù)據(jù)業(yè)務(wù)對(duì)象的方法為操作關(guān)聯(lián)并返回?cái)?shù)據(jù)業(yè)務(wù)對(duì)象的方法為StudentDB類的類的SelectData方法,如圖方法,如圖13.7所示。所示。 單擊單擊“UPDATE”選項(xiàng)卡,指定與選項(xiàng)卡,指定與UPDATE操作關(guān)聯(lián)操作關(guān)聯(lián)并返回?cái)?shù)據(jù)業(yè)務(wù)對(duì)象的方法為并返回?cái)?shù)據(jù)業(yè)務(wù)對(duì)象的方法為StudentDB類的類的UpdateData方方法,如圖法,如圖13.8所示。所示。 單擊單擊“DELETE”選項(xiàng)卡,指定與選項(xiàng)卡,指定與DELETE操作關(guān)聯(lián)操作關(guān)聯(lián)并返回?cái)?shù)據(jù)業(yè)務(wù)對(duì)象的方法為并返回?cái)?shù)據(jù)業(yè)務(wù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論