欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 計劃總結 > 工作總結 > 基于.NET的Web程序設計知識點總結

基于.NET的Web程序設計知識點總結

網站:公文素材庫 | 時間:2019-05-29 07:18:24 | 移動端:基于.NET的Web程序設計知識點總結

基于.NET的Web程序設計知識點總結

1.網站中的Global.asax文件(如果有的話)必須放在應用程序的根目錄下(T)2.利用DetailsView控件添加記錄特別方便,因為不需要另外增加輸入框(T)3.ADO.NET只是ADO的簡單升級(F)

4.數據集(DataSet)能夠在斷開與數據源連接的情況下工作(T)5.ASP.NET采用的是代碼分離模式(T)

6.離開了網站,aspx頁面可以單獨運行(F)

7.離開了IIS服務器,.htm頁面可以單獨運行(T)8.在DetailsView中不能顯示符合條件的多條記錄(F)

9.Web服務器控件的幾個按鈕都可以起到向服務器提交數據的作用(T)10.XML是一種編程語言(F)

1.服務器控件的AutoPostBack屬性的含義是選擇服務器控件時,是否自動回送。

。

2.要求在某文本框中輸入密碼,一般要將該TextBox控件的TextMode屬性設置為

Password。

3.Page對象的IsPostBack屬性的含義是指示該頁是否正為響應客戶端回發(fā)而加載,或者是否正被首次加載和訪問。如果是響應客戶端回發(fā)而加載,其值為True,否則為False。

4.Response對象在使用時是通過使用Page對象的Response屬性而達到的。5.ASP.NET中的頁面跳轉可以通過Response對象的Redirect方法實現。

6.ASP.NET中存儲頁面間共享的變量可以通過Session對象或Application對象實現。7.存儲過程的英文原詞為StoredProcedure。

8.ADO.NET包含的5大對象為Connection,Command,DataReader,

DataAdapter,DataSet。

9.使用SqlConnection對象連接到本地的數據庫服務器上的Northwind數據庫時,如果使用集成

Windows的身份驗證模式,則連接字符串的寫法為:

SqlConnection

conn=new

SqlConnection("Data

Source=.;Initial

Catalog=Northwind;Integrated

Security=True");。

10.下面是設置和取出Session對象的代碼。

設置Session的代碼是:

Session[“greeting”]=”hellowang!”;

取出該Session的對象的語句如下:

Stringgreeting=Session["greeting"].ToString();

11.App_Data目錄用來放置()

A.共享的數據庫文件B.共享文件C.被保護的文件D.代碼文件12.文件系統(tǒng)網站非常適合學習使用,因為()A.不需要安裝IISB.網站允許放置在任意目錄下C.能夠進行單獨測試D.A+B13.下面哪種后綴是靜態(tài)網頁文件()A.aspB.aspxC.htmD.jsp

14.在配置GridView控件的SqlDataSource數據源控件過程中,單擊【高級】按鈕的目的是()A.打開其他窗口B.輸入新參數C.生成SQL編輯語句D.優(yōu)化代碼15.SiteMapDataSource能否用來訪問()A.關系型數據B.層次性數據C.字符串數據D.數值型數據1.ASP.NET中服務器端控件的AutoPostBack屬性的意義。(答案見P87)

2.ASP.NET中頁面跳轉的方式有幾種,并簡述各自的特點。(答案見P137~139)3.在網站中使用母版頁的好處是什么,根據你的學習經歷描述使用母版頁的一般過程。(答案見P228)

擴展閱讀:Net程序設計知識點

.Net程序設計

教材:

《VisualC#.NET實用教程》,清華大學出版社參考書:

課程學習的目的:

1學習并掌握.NET技術、C#的編程方法和面向對象思想;

2.學習并掌握ADO.NET技術及Windows數據庫應用程序的開發(fā);3.學習并掌握ASP.NET技術及Web應用程序的開發(fā);4.學習并掌握網絡編程的知識

前期課程基礎:

數據結構、操作系統(tǒng)、計算機網絡

授課學時與分配:總學時40學時

1.緒論(2學時)2.C#的編程基礎(2學時)3.面向對象編程(6學時)4.Windows應用程序(4學時)5.ADO.NET技術(2學時)6.Windows數據庫應用程序的開發(fā)(4學時)7.ASP.NET技術(4學時)8.Web應用程序的開發(fā)(3學時)9.網絡編程基礎(4學時)10.網絡編程技術(6學時)11.總結考試(2學時)

授課時間、地點:

時間為每周一上午8:0012:10;地點為12教學樓A408,B304。第1講.NET綜述

1.1.NET介紹

1.2.NET核心成分簡介

1.2.1公共語言運行庫

1.2.2.NETFramework類庫1.2.3中間語言和程序集1.2.4公共語言規(guī)范1.2.5通用類型系統(tǒng)1.3開發(fā)工具及C#語言

1.3.1開發(fā)工具介紹1.3.2C#語言簡介

1.4基于.NET的應用程序

1.4.1SDK和IDE

1.4.2基于.NET的應用程序1.5C#程序設計初步

1.5.1在SDK上開發(fā)控制臺程序

1.5.2在IDE上開發(fā)Windows應用程序1.5.3在IDE上開發(fā)Web應用程序

第2講C#類型和語句成分

2.1關鍵字、標識符和注釋

2.1.1關鍵字

2.1.2標識符及其命名2.1.3注釋2.2C#類型基礎

2.2.1類型分類

2.2.2C#語言的類型系統(tǒng)2.2.3變量

2.2.4常量和文字2.3值類型

2.3.1簡單類型2.3.2枚舉類型2.4數組類型

2.4.1一維數組2.4.2多維數組2.4.3交錯數組2.4.4Array類簡介2.4.5foreach語句2.5字符串常量

2.5.1創(chuàng)建字符串

2.5.2String字符串的比較2.6結構

2.6.1結構的聲明

2.6.2結構的實例化及應用2.7運算符和表達式

2.7.1算術運算符2.7.2關系運算符2.7.3邏輯運算符2.7.4位運算符2.7.5賦值運算符2.7.6條件運算符

2.7.7運行符的優(yōu)先級及結合性2.8數據類型轉換

2.8.1隱式類型轉換2.8.2顯示轉換

第3講C#語句

3.1簡單語句

3.1.1表達式語句3.1.2空語句3.1.3復合語句3.1.4聲明語句3.2選擇語句

3.2.1條件運算符3.2.2if語句3.2.3switch語句3.3循環(huán)語句

3.3.1while循環(huán)3.3.2do_while循環(huán)3.3.3for循環(huán)3.4跳轉語句

3.4.1break語句3.4.2continue語句3.4.3goto語句3.4.4return語句3.5命名空間

3.5.1命名空間聲明

3.5.2using命名空間指令3.5.3using別名指令

第4講面向對象程序設計基礎-類、對象、方法

4.1面向對象程序設計概述4.2類和對象

4.2.1類的聲明4.2.2類的成員4.2.3對象的聲明4.3構造函數

4.3.1默認構造函數4.3.2構造函數的重載4.4析構函數4.5方法

4.5.1方法的聲明及調用4.5.2方法中的參數傳遞4.5.3實例方法和靜態(tài)方法4.5.4方法重載4.6運算符重載4.7屬性和索引器

4.7.1屬性的聲明和使用4.7.2索引器的聲明和使用4.7.3屬性和索引器的比較

第5講面向對象程序設計-繼承、多態(tài)

5.1類的繼承

5.1.1基類與派生類

5.1.2成員的繼承、添加和隱藏5.1.3base關鍵字5.2抽象類與封閉類

5.2.1抽象方法、屬性、索引器5.2.2抽象類5.2.3密封類5.3多態(tài)

5.3.1虛成員5.3.2重寫

5.3.3編譯時多態(tài)和運行時多態(tài)

第6講面向對象程序設計-接口、委托

1接口

.1接口的定義.2接口的實現2委托和事件

1委托2事件3異常處理

1異常類

2異常處理步驟3拋出異常4捕獲處理異常

第7講Windows應用程序

7.1Windows應用程序開發(fā)步驟

7.1.1創(chuàng)建窗體

7.1.2添加控件及控件布局7.1.3響應事件7.2Windows常用控件

7.2.1文本類控件7.2.2按鈕類控件7.2.3對話框類控件

7.2.4列表框、視圖類控件7.2.5滾動類控件

7.2.6工具欄和狀態(tài)欄控件7.2.7定時器控件7.2.8菜單控件

7.3多文檔界面(MDI)

7.3.1創(chuàng)建MDI父窗體7.3.2創(chuàng)建MDI子窗體

7.3.3確定活動的MDI子窗體7.3.4排列子窗體7.4實例解析

第7講ADO.NET數據庫訪問技術

8.1ADO.NET概述8.2ADO.NET體系結構

8.2.1ADO.NET的總體結構8.2.2DataSet結構

8.2.3.NETFramwork數據提供程序

8.2.4ADO.NET開發(fā)數據庫應用程序的一般步驟8.3數據庫的連接

8.3.1Connection連接字符串8.3.2創(chuàng)建并使用連接對象8.4Command對象的使用

8.4.1創(chuàng)建Command對象8.4.2執(zhí)行命令8.4.3參數化查詢8.4.4執(zhí)行存儲過程8.5DataReader對象的使用

8.5.1創(chuàng)建DataReader對象8.5.2使用DataReader讀取數據8.6DataSet和DataAdapter的使用

8.6.1DataSet對象管理數據8.6.2使用DataAdapter對象

第9講Windows數據庫應用程序開發(fā)

9.1數據綁定

9.1.1簡單數據綁定9.1.2復雜數據綁定9.2數據源的類型9.2.1數組數據源9.2.2數據表數據源9.2.3數據集數據源

9.3Windows數據庫應用實例

9.3.1數據庫的創(chuàng)建及連接9.3.2主要界面及相關代碼

第10講ASP.NET技術

10.1ASP.NET簡介

10.1.1ASP.NET的特點

10.1.2ASP.NET代碼分離技術10.1.3Web窗體10.2ASP.NET控件

10.2.1HTML服務器控件10.2.2Web服務器控件10.2.3驗證控件10.3ASP.NET內置對象

10.3.1Response對象10.3.2Request對象10.3.3Server對象10.3.4Session對象10.3.5Application對象

第11講Web應用程序開發(fā)基礎

11.1Web數據綁定技術11.2列表類數據綁定控件

11.2.1列表控件概述

11.2.2列表類控件數據綁定舉例11.3GridView控件

11.3.1GridView控件概述

11.3.2常用屬性、方法和事件11.3.3GridView中的字段類型11.3.4GridView數據顯示11.3.5編輯和刪除數據

11.3.6分頁顯示數據和數據排序11.4Global.asax文件11.5Web.config文件

11.5.1配置與調用數據庫鏈接字符串11.5.2配置文件Web.config

第12講網上選課系統(tǒng)的開發(fā)12.1需求分析12.2數據庫設計

12.2.1數據庫表12.2.2存儲過程12.3系統(tǒng)設計12.4數據庫連接

12.4.1Web.Config的配置12.4.2調用連接字符串12.5系統(tǒng)實現

12.5.1登錄界面(Login/Login.aspx)

12.5.2選課界面(student/selectcourse.aspx)12.5.3提交界面(student/tijiao.aspx)

12.5.4學生管理界面(manager/StudentList)

12.5.5選課管理界面(manager/XuanKeList.aspx)

以上為考試范圍

第13講多線程和同步

13.1基本概念

13.1.1多線程概念

13.1.2C#中線程實現方法13.2Thread類

13.2.1Thread類介紹

13.2.2線程的狀態(tài)和生命周期13.2.3線程的優(yōu)先級13.3多線程編程

13.3.1編程步驟13.3.2編程實例13.4線程同步和互斥

13.4.1多個線程同時修改共享數據可能發(fā)生的錯誤13.4.2用Lock語句實現互斥13.4.3用Mutex類實現互斥13.4.4用Monitor類實現互斥13.5實例解析

第14講網絡協(xié)議與套接字編程

14.1TCP/IP網絡協(xié)議

14.1.1TCP/IP參考模型14.1.2網間協(xié)議IP

14.1.3傳輸控制協(xié)議TCP14.1.4C#中相關的類14.2套接字編程技術

14.2.1IP地址和端口14.2.2套接字14.2.3面向連接的套接字14.2.4無連接的套接字14.3套接字編程實例1、.Net包括哪些內容?

主要介紹.NET的兩個重要實體:公共語言運行庫(CommonLanguageRuntime,CLR)和.NETFramework類庫(FrameworkClassLibrary,FCL),以及其它核心成分。

2、什么是.NetFramework?

.NET平臺又稱.NET框架(.NETFramework),是.NET的核心組成部分,提供了一個多語言組件開發(fā)和執(zhí)行的環(huán)境一個完全可操控的安全的和特性豐富的應用開發(fā)執(zhí)行環(huán)境,這不但使得應用程序的開發(fā)和發(fā)布更加簡單,并且實現了眾多種類語言間的無縫集成。

3、公共語言運行庫

公共語言運行庫(CommonLanguageRuntime,CLR)又稱為公共語言運行時或公共語言運行環(huán)境,是.NET系統(tǒng)構架中核心的部分,負責執(zhí)行代碼、管理內存、提供安全性等核心功能。它是構成.NET框架的兩個實體中的一個。

CLR和Java虛擬機一樣是一個運行時環(huán)境,其主要功能包括:

執(zhí)行和管理:完成運行過程中的代碼加載、應用程序和托管對象的內存管理、對

象自動布局、使用JIT(JustInTime)編譯器將MSIL(Microsoftintermediatelanguage)編譯成本地代碼并且控制代碼執(zhí)行、處理異常等全部步驟。

提供安全保證:類型安全、代碼訪問安全、控制托管和非托管代碼的互操作。對開發(fā)者的支持:提供界面信息,幫助調試等。

4、代碼執(zhí)行過程

在.NET中,將代碼分為托管代碼(managedcode)和非托管代碼(unmanagedcode)兩種

C#.NET源程序VB.NET源程序

CLS:公共語言運行規(guī)范C#編譯器VB.NET編譯器MSIL:Microsoft中間語言CLR:公共語言運行庫(JIT:justintime編譯器)

本地代碼

代碼執(zhí)行流程

5、開發(fā).NET的應用程序使用兩種環(huán)境SDK和IDE,二者區(qū)別與聯系SDK和IDE分別是Microsoft的softwaredevelopmentkit(軟件開發(fā)工具包)和integrateddevelopmentenvironment(集成開發(fā)環(huán)境)的縮寫。

采用SDK開發(fā),首先使用文本編輯器編寫代碼,然后用命令行編譯和執(zhí)行。開發(fā)控制臺程序通常使用SDK環(huán)境。

IDE是可視化的開發(fā)環(huán)境,所謂可視化編程,是一種自動或半自動的編程方法。在編程過程中,程序員利用系統(tǒng)提供的圖形元素,組合成所需要的界面或組合成能夠體現程序邏輯的流程,系統(tǒng)就能自動地產生部分代碼或全部代碼。在IDE中,程序員可以利用系統(tǒng)中提供的圖形元素組合成界面,開發(fā)Windows窗體應用程序和Web應用程序。

6、IDE上直接支持的應用程序的主要類型有哪些?

1、Windows應用程序

Windows應用程序是基于Windows窗體(WindowsForms)的應用程序,是一種基于圖形界面接口GUI的應用程序,一般是在用戶計算機本地運行。

2、Windows控件庫

可以創(chuàng)建Windows窗體應用程序的自定義控件,以方便用戶的使用。3、ASP.NETWeb應用程序

ASP.NET是.NET中統(tǒng)一的Web開發(fā)平臺,可以用來開發(fā)企業(yè)級的Web應用程序。ASP.NET使程序員能夠像設計Windows窗體應用程序一樣設計Web應用程序,并且采用代碼分離技術,使代碼與HTML文檔分離,方便代碼重用,還具有服務器控件的開發(fā)能力,能夠在IDE中進行可視化的開發(fā)。

4、ASP.NETWebService

WebService是Microsoft的.NET戰(zhàn)略中的重點,由于XML(extensiblemarkuplanguage)是當今Internet和各類系統(tǒng)之間數據交換的標準,所以也稱為XMLWebServices,它可以實現客戶端服務器或服務器客戶端之間的數據交換。

XMLWebServices采用松耦合的分布式結構,不與特定的組件技術或對象調用約定相關聯,也與編程語言、組件模型、操作系統(tǒng)等無關。一般的Web程序,如瀏覽器,是人與程序的對話,而WebService是程序與程序的對話。WebService是公認的Internet下一個最大的浪潮,也是Internet應用中最有影響的服務。

5、智能設備應用程序

Internet不僅可以連接PC機、服務器等計算機設備,也可以連入電視機、電冰箱、打印機等家用的或辦公的電器,可以通過Internet進行遠程控制,智能設備應用程序就是連接、控制這些設備,并互相通信的應用程序。

6、ASP.NET移動Web應用程序

此類應用程序應用于能無線上網的移動數字設備,常見的移動設備有移動電話、PDA、筆記本電腦等。.NET提供移動控件來連接移動設備的設備適配器,在.NET上開發(fā)移動Web應用程序的過程和開發(fā)其它Web應用程序類似。

7、C#語言支持的兩種基本數據類型

值類型和引用類型。理解這兩種類型的區(qū)別是理解C#語言各種類型及其用法的基礎。值類型:值類型變量存放在棧里,所以直接包含有它們的數據,每個值類型變量

都有它自己的副本,因此對一個變量的操作不會影響到另一個變量。

引用類型:引用類型的存儲分為兩部分,引用類型中對數據的引用存放在棧里面,

而引用類型的數據存放在堆里面。所以引用類型變量的名不包含它的數據,而是只包含對它的數據的引用。引用類型變量的數據存儲在一個實例中,不同的變量可以引用同一個對象的實例,因此在對一個引用變量操作時,改變實例值時將會影響其他引用這個實例的引用變量,在編程中要格外注意。8、C#語言提供了兩種實現繼承的方式:類的繼承和接口繼承。他們的區(qū)別與聯系.通常把作為基礎、被繼承的類稱為基類,繼承別的類的子類稱為派生類。一個類從另一個類派生出來時,派生類從基類那里繼承特性。派生類也可以作為其它類的基類。C#中,派生類只能從一個類中繼承,不支持多繼承的機制。如果必須使用多重繼承,可以使用接口繼承來實現。

9

C#的關鍵字abstractchardofinallyinnewsizeoftrueusingnewabstractsealedpublicprotectedinternalprivate只允許用在嵌套類中,表明隱藏了從基類繼承而來、與基類中同名的成員說明該類是一個抽象類,該類含有抽象成員,因此不能被實例化,只能用來做其他類的基類,而不能產生對象說明該類是一個密封類,不能做其他類的基類,不能再派生新的類表示外界可以不受限制的訪問該類。類的訪問權限省略時默認為public該類只能被這個類的成員或類派生成員訪問表示該類能由程序集中的所有文件使用,而不能由程序集之外的對象使用表示該類只能被這個類的成員訪問ascheckeddoublefixedintnullstackalloctryvirtualbaseclasselsefloatinterfaceobjectreadonlystatictypeofvolatileboolconstenumforinternalrefstringuintvoidbreakcontinueeventforeachisreturnstructulongwhilebytedecimalexplicitgotolockoverridesbyteswitchuncheckedcasedefaultexterniflongparamssealedthisunsafecatchdelegatefalseimplicitnamespaceprivateshortthrowushortoperatoroutprotectedpublic

10、C#的基本數據類型

值類型簡單類型用戶自定義類型枚舉類型接口用戶自定義類型指針類型類型引用類型類類型數組委托字符串用戶自定義類型接口指針類型

圖2.1C#的類型值類型包括三種:簡單類型、枚舉類型和自定義類型(這里指結構)。將在2.3小節(jié)介紹前兩種值類型,在第5章介紹結構類型。

引用類型包括類(class)、接口(interface)、委托(delegate)、數組(array)、字符串(String)和Object以及不提倡使用的指針類型。習慣將引用類型的變量稱為對象,而值類型的變量仍然稱為變量。引用類型和值類型的最大區(qū)別是引用類型的數據存儲在堆中,而在棧中存儲它的數據的引用。

位運算符“>1);輸出結果是:

有符號數右移1位:-128無符號數右移1位:128

知識點匯總

1、什么是面向對象程序設計?

2、什么是類?類的多態(tài)、封裝、繼承作用是什么?

類的成員由兩部分組成,一部分是類體中以類成員聲明形式引入的類成員,另一部分是直接從它的基類繼承而來的成員。類的成員主要包括數據成員和方法成員,類是完成對它們封裝的結構類型。類的數據成員可以是常量、字段和對象等。方法成員包含方法、屬性、索引器、事件、操作符、構造函數、析構函數等。當字段、方法、屬性、事件、運算符和構造函數聲明中含有static修飾符時,則表明它們是靜態(tài)成員,否則就是實例成員。靜態(tài)成員屬于類,而實例成員屬于對象。

類成員聲明時,可以使用以下5種訪問修飾符中的一種:public、protected、internal、private、protectedinternal。當類成員聲明中不包含訪問修飾符時,默認訪問修飾符為private。

多態(tài)就是指一個成員在不同的上下文中表現出不同的功能。多態(tài)是面向對象程序設計中重要概念和常見技術,也是一種代碼重用技術。虛成員和虛成員的重寫是多態(tài)技術的基礎。

根據C#是在編譯時還是在運行時確定得調用不同類對象的哪個同名成員,將多態(tài)分為如下兩種:編譯時多態(tài)和運行時多態(tài)。

編譯時多態(tài)是指在編譯時就能確定調用什么對象中的成員,也稱為早綁定。隱藏、重載都屬于早期綁定,即編譯時多態(tài)。運行時多態(tài)是指只有當運行時才能確定調用哪個對象中的成員,又稱為晚綁定。虛方法、重寫是晚綁定,即運行時多態(tài)。一般所說的多態(tài)性均為運行時多態(tài)。

3、構造方法(構造函數)

構造函數的重載是常見的現象,同一個類中有多個構造函數,區(qū)別他們的依據是參數列表,同一個類中任意兩個構造函數的參數列表必須不同,參數列表只要具備下列條件之一,就可以認為是不同的參數列表,進而可以認為是兩個重載的構造函數:

1)參數列表中參數個數不同;

2)參數列表中參數個數相同,但參數類型不同;

3)參數列表中參數個數相同,參數類型種類也相同,但排列的次序不同。

4、屬性

屬性由兩部分組成:屬性頭和存取器。存取器分為get訪問器和set訪問器。下面給出屬性的聲明。

語法形式:

[修飾符]類型說明符屬性名{

訪問聲明}

其中:修飾符new,public,protected,internal,private,static,virtual,override和abstract9種。

訪問聲明用來聲明屬性訪問器。給屬性賦值時使用set訪問器,獲取屬性值時使用get訪問器。在訪問聲明中,如果只有get訪問器,表示是只讀屬性;如果只有set訪問器,表示只寫屬性;兩個都有,表示讀寫屬性。

set訪問器是一個帶有簡單值類型參數的方法,用于處理類外部的寫入值。set訪問器帶有一個特殊的關鍵字value,value就是set訪問器的隱式參數,在set中通過value將外部的輸入傳遞進來,然后賦值給類中的某個變量成員。get訪問器是一個不帶參數的方法,它用于向外部返回屬性成員的值。通常訪問函數的語句或語句塊主要由return或throw語句返回某個變量成員的值。為了實現良好的數據封裝和數據隱藏,類的字段成員的訪問屬性一般設置為private或protected,這樣在類的外部就不能直接讀/寫這些字段了,通常的辦法是提供public級的方法來訪問私有的或保護的字段。為了實現對數據成員更好地封裝和保護,同時又向外界提供更有效的訪問形式,C#采用屬性來實現這種目標。屬性是一種特殊的成分,它具有方法的本質,又具有字段的形式,即屬性的定義類似于方法的定義,屬性的使用類似于字段的使用。屬性完善了C#的封裝功能,使得所有的數據成員都可以成為私有成員,從而更好地體現了面向對象程序設計的封裝性。

5、索引器

索引器允許按照與數組相同的方式對類、結構或接口進行索引。索引器類似于屬性,不同之處在于它們的訪問器采用參數。下面給出索引器的聲明。語法形式:

[修飾符]索引器聲明符{

訪問器聲明}其中:

修飾符可以是new、virtual、sealed、override、abstract、extern以及public、protected、internal、private四個訪問修飾符的有效組合。注意,索引器修飾符不可以是static的。

索引器聲明符的形式有兩種,分別是:類型this[形參表]或

類型接口類型this[形參表]

注意此處“[]”不表示可選,是索引器聲明符的必要部分。而this是C#中的關鍵字,除了可以聲明索引器以外,還用于限定被相似的名稱隱藏的成員、將對象作為參數傳遞到其它方法。

訪問器聲明,也要使用get()和set()訪問器,不同的是使用索引指示器取得的對象是對象中各元素的值,而不是特定的數據成員。使用索引器的形式為:對象名.[實參]

使用索引器也是C#的一個特色,一個類往往包含了數組型的對象,索引器使得可以像數組那樣對對象使用下標,為我們提供了通過索引方式方便地訪問類的數據信息的方法。6、抽象類特點是什么?舉例說明

用關鍵字abstract修飾的抽象類是一種沒有被完整定義的類,因此它不能用來實例化,也就是說,不能產生對象。設計abstract類的目的是為了被繼承,其意義在于:1)、包含派生類的公有成員。這些公有成員在抽象類中定義一次,就可以被反復使用,提高軟件開發(fā)的效率和可維護性。2)、規(guī)范行為。抽象方法等具體行為特征的成員實際上是一種建模過程,規(guī)定了輸入口和輸出口,而將實現的細節(jié)留給派生類根據實際情況編程。同一個抽象類的派生類有許多共性,這使得它們有了交互的基礎。下面給出抽象類的聲明。

語法形式:

abstractclass類名{

}

抽象類不能產生實例,因此不能這樣書寫代碼,如:

抽象類名對象名=new抽象類名(參數列表)new抽象類名(參數列表)。這樣的代碼都是錯誤的。設計抽象類時要注意以下幾點:1)、抽象類雖然不能產生對象,但可以有構造函數。2)、抽象類是要被繼承的,所以不能和sealed修飾符聯用。

3)、抽象類的派生類可以依然是抽象類,只有當派生類實現了所有抽象成員后,才演化為一個普通的類,這時才能產生對象。

7、抽象方法

用abstract修飾的方法、屬性和索引器分別稱為抽象方法、抽象屬性、和抽象索引器。它們共同特點是只有行為的定義,卻沒有行為的實現。

抽象方法是只有方法頭,沒有方法體的方法。抽象方法的聲明格式如下。語法形式:

abstract返回類型方法名(參數列表);

抽象方法規(guī)定了方法的輸入參數的類型和數量以及輸出的類型,以此定義了方法的激勵和響應的形式,而在內容上可由實現者任意實現,因此僅憑抽象方法的定義來判斷方法的功能是不可靠的。

抽象屬性中可以選擇get和set關鍵字,但沒有具體的執(zhí)行語句,抽象屬性的聲明格式如下。

語法形式:

abstract返回類型屬性名{get;set;}

而抽象索引器的聲明形式和抽象屬性的很相似。語法形式:

abstract返回類型this[參數列表]{get;set;}

在用到abstract關鍵字時,需要注意以下幾點:1)、abstract不能和static同時修飾同一個方法。2)、abstract也不能和private同時修飾同一個方法,并且不能省略訪問控制符。3)、abstract方法只能出現在abstract類中,并且只有當包含此抽象方法的抽象類被繼承之后,才能在派生類中被實現。

4)、派生類實現抽象方法時必須使用關鍵字override,否則被默認為是缺省的關鍵字new。8、接口

接口是抽象成員的集合,這些抽象成員可以是抽象方法、屬性、索引器、事件,接口是實現多繼承的工具。實際上,接口是一些實現特定功能的抽象成員的集合。一個類可以繼承多個接口,從而獲得多個行為的描述,將它們組合成新的功能并在類中實現。

接口的聲明。

語法形式:

[接口修飾符]interface接口名:[基接口列表]{

接口體}

其中:

接口修飾符有new、public、protected、internal、private。Interface聲明接口時的關鍵字。

接口名一個標識符,首字母為大寫的I!埃骸北硎纠^承,接口可以多繼承。

基接口列表是一個或多個基接口類型,正在被定義的接口將繼承基接口列表中的所有基接口,出現在基接口列表中的基接口也可能繼承了其他的接口,為了方便區(qū)分,把出現在基接口列表中的基接口稱為顯式基接口。基接口之間用“,”分割。接口繼承其所有基接口的所有成員,也可以用new隱藏基接口的成員

usingSystem;

publicinterfaceIgram//聲明圖形接口{

doubleArea();

doubleGramLength();intSides{get;}}

publicinterfaceIDisplay//聲明輸出接口{

voidPrint();}

publicclassSquare:Igram,IDisplay{

privateintsides;

publicintSideLength;publicSquare()//構造函數{

sides=4;}

publicintSides//實現Igram接口的Sides屬性成員{

get{returnsides;}}

publicdoubleArea()//實現Igram接口的Area方法成員{

return((double)(SideLength*SideLength));}

publicdoubleGramLength()//實現Igram接口的GramLength方法成員{

return((double)(Sides*SideLength));}

publicvoidPrint()//實現IDisplay接口的Print方法成員{

Console.WriteLine("\\n計算正方形面積結果如下:");Console.WriteLine("邊長:{0}",this.SideLength);Console.WriteLine("周長:{0}",this.GramLength());Console.WriteLine("面積:{0}",this.Area());}}

publicclassApp{

publicstaticvoidMain(){

Squaresq=newSquare();sq.SideLength=5;sq.Print();}}

運行結果:

在同一個類Square中實現了兩個接口:Igram和IDisplay。

9、參數傳遞

C#中傳入到方法中的參數不同,可分為4種:傳遞值類型的參數、傳遞引用類型的參數、傳遞多個引用類型參數和傳遞個數不確定的參數。

傳遞多個引用類型參數

return語句一次只能返回一個結果,針對這種情況,C#提供了一種特殊的參數傳遞方式:傳遞多個引用類型參數。完成這種數據傳遞方式所使用的是輸出型參數,用關鍵字out表示。與引用型參數類似,輸出型參數也不開辟新的內存區(qū)域。它與引用型參數的區(qū)別:調用方法前無需對變量進行初始化,正因為如此,在out參數沒有被顯示地賦值之前,不能使用。在將實參作為輸出型參數傳遞的調用完成后,該實參變量將會被該方法中的形參明確賦值,并將數據從方法中傳出至調用處。out修飾符后應跟隨形參類型相同的類型聲明。

下面給出輸出型參數的實例,usingSystem;

publicclassCalculate{

publicvoidCal(intinNum,outintoutNum1,outintoutNum2){

outNum1=inNum*inNum;outNum2=inNum*10;}}

classTest{

publicstaticvoidMain(){

Calculatecal=newCalculate();intoutnum1;//不必初始化intoutnum2;//不必初始化

cal.Cal(35,outoutnum1,outoutnum2);

Console.WriteLine("outnum1:{0}",outnum1);Console.WriteLine("outnum2:{0}",outnum2);}}

運行結果:

傳遞個數不確定的參數

當需要傳遞的參數個數不確定時,如求幾個數的最大值,由于沒有規(guī)定是幾個數,運行程序時,每次輸入的值的個數不一定一樣。為了解決這個問題,C#采用參數數組。形參數組前如果用params修飾符進行聲明就是參數數組,通過參數數組可以向函數傳遞個數變化的參數。usingSystem;classParamsTest{

staticintParamsMeth(refintsum,paramsint[]arr){

inti;

for(i=0;i

sum=sum+arr[i];arr[i]=arr[i]*arr[i];}

return(arr[arr.Length-1]);}

staticvoidMain(){

int[]a={1,2,3};inti,L;

ints=0,z=0;

ParamsMeth(refs,a);//數組作為實參

Console.WriteLine("數組作為實參的結果:");Console.WriteLine("和為:{0}",s);for(i=0;i

Console.WriteLine("a[{0}]={1}",i,a[i]);

Console.WriteLine("與形參數組的元素屬于同一類型的變量做實參的結果:");L=ParamsMeth(refz,23,45);//與形參數組的元素屬于同一類型的變量做實參Console.WriteLine("和為:{0}",z);

Console.WriteLine("輸入最后數值的乘積:{0}",L);}}

運行結果:

10、語句

常用的簡單語句包括賦值語句、空語句、表達式語句、復合語句等C#中常用的三種分支技術:條件運算符;if語句;switch語句。C#提供了4種循環(huán)語句:while、do_while、for和foreachbreak語句、continue語句、goto語句、return語句等。1)break語句

除了在switch語句中使用break語句,它還用于循環(huán)結構中,作用是結束其所在的結構語句。它的格式是:break;

break語句的目標地址為包含它的switch、while、do、for、或foreach語句的結尾,如果不在這些語句塊中,編譯將出錯。2)continue語句

continue語句用于循環(huán)結構中,其作用是結束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)體的判定。格式是:continue;continue語句重新開始一次包含它的while、do、for、或foreach語句的執(zhí)行,其目標地址也是上述這些語句的內嵌語句結尾,如果不在這些語句塊中,編譯將出錯。

continue語句和break語句的區(qū)別是:continue只跳出一次循環(huán),而break語句則跳出整個循環(huán)語句或switch語句。當有switch、while、do、for或foreach語句相互嵌套的時候,break語句只是跳出直接包含它的那個語句塊。如果要在多處嵌套語句中完成轉移,必須使用goto語句。3)goto語句

goto語句的功能是將控制轉到由標簽標記的語句。格式是:goto標號標識符;

需要注意的是,goto語句使用比較方便,但是容易引起邏輯上的混亂,因此除了在switch語句中必須從一個case跳到另一個case的情況下可以使用goto語句外,其他情況下最好不要使用goto語句。4)return語句

return語句的功能是從它所在的子函數返回該子函數的調用者。格式:return[表達式];

注意,此處的“[]”符號,表示其里面的表達式是可選的。

不帶表達式的return語句只有在不需要計算數值的子函數中出現,也就是,其返回類型為void。帶表達式的return語句只能用在計算數值的函數成員中,也就是其返回類型是非void。

5)throw語句,它的作用是拋出異常

11、公共語言運行庫(CommonLanguageRuntime,CLR)

12、NETFramework類庫(FrameworkClassLibrary,FCL)

1)System.Object類

2)異常處理Exception3)文件類

System.IO中包含用于在文件中讀取和寫入數據的類。

System.IO.Directory公開用于創(chuàng)建、移動和枚舉目錄和子目錄的靜態(tài)方法。System.IO.File提供用于創(chuàng)建、復制、刪除、移動和打開文件的靜態(tài)方法。System.IO.Path處理路徑名稱。

System.IO.DirectoryInfo公開用于創(chuàng)建、移動和枚舉目錄和子目錄的實例方法。System.IO.FileInfo創(chuàng)建、復制、刪除、移動和打開文件的實例方法System.IO.FileStream以文件為主的Stream,既支持同步讀寫操作,也支持異步讀寫操作。

System.IO.StreamReader從字節(jié)流中讀取字符。System.IO.StringWriter向流中寫入字符。

System.IO.FileSystemWatcher偵聽文件系統(tǒng)更改通知,并在目錄或目錄中的文件發(fā)生更改時引發(fā)事件。

StreamReader,StreamWriter完成文件的讀寫操作,String.Split()完成字符串的拆分。

openFileDialogsaveFileDialog

引用一個OpenFileDialog對象.為檢查用戶在退出對話框時是否單擊了”打開”按鈕,應檢查對象.ShowDialog()的返回值是否等于DialogResult.OK

用FileStream打開一個文件時,可用FileMode參數控制4)圖形類

Pen類的構造函數有四種,使用方法如下。(1)創(chuàng)建某一顏色的Pen對象:publicPen(Color)(2)創(chuàng)建某一刷子樣式的Pen對象:publicPen(Brush)

(3)創(chuàng)建某刷子樣式并具有相應寬度的Pen對象:publicPen(Brush,float)(4)創(chuàng)建某一顏色和相應寬度的Pen對象:publicPen(Color,float)Pen對象的常用屬性

(1)Alignment屬性:用來獲取或設置此Pen對象的對齊方式。(2)Color屬性:用來獲取或設置此Pen對象的顏色。畫橢圓

[格式1]:publicvoidDrawEllipse(Penpen,Rectanglerect);

[格式2]:publicvoidDrawEllipse(Penpen,intx,inty,intwidth,intheight);

(3)Width屬性:用來獲取或設置此Pen對象的寬度。畫矩形

[格式1]:publicvoidDrawRectangle(Penpen,Rectanglerect);[格式2]:publicvoidDrawRectangle(Penpen,intx,inty,intwidth,intheight);

13、異常處理都處理哪些錯誤,舉例說明;

異常(Exception)是程序執(zhí)行時遇到的任何錯誤情況或意外行為。如除數為零、分配內存空間失敗,都能引發(fā)異常。異常處理(ExceptionHanding)指的是一種機制或方法,通過它,用戶創(chuàng)建的應用程序能夠解決或處理異常。

C#提供了一個標準類System.Exception,此類是所有異常的基類;怑xception下存在兩類異常:一個是從SystemException派生的預定義公共語言運行庫異常類,另一個是從ApplicationException派生的用戶定義的應用程序異常類。Exception包含很多屬性,可以幫助標識異常的代碼位置、類型、幫助文件和原因,常用屬性如下所示:

HelpLink屬性:獲取或設置指向此異常所關聯幫助文件的鏈接。InnerException屬性:獲取導致當前異常的Exception實例。Message屬性:獲取描述當前異常的消息。

Source屬性:獲取或設置導致錯誤的應用程序或對象的名稱。

StackTrace屬性:獲取當前異常發(fā)生時調用堆棧上的幀的字符串表示形式。argetSite屬性:獲取引發(fā)當前異常的方法。

14、ADO.NET有哪些數據對象?各有什么功能?

NETFramework數據提供程序的實質是數據源與應用程序的橋梁,并且都有一定的標準,它們都實現了相同的基類:Connection、Command、DataAdapter和DataReader.Connection對象主要用于建立與數據源的活動連接。

Command對象可以對數據源執(zhí)行查詢、插入、刪除、更新等各種操作。

DataReader對象是從一個數據源中選擇某些數據的最簡單方法,尤其適合讀取大量的數據,因為它不在內存中緩存。

DataAdapter是連接到數據庫以填充DataSet對象

usingSystem;

usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;

usingSystem.Windows.Forms;usingSystem.Data.OleDb;db1.OleDbConn.Open();OleDbCommand

OleDbConnectionOleDbConn=newOleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;dataSource=./telephone.mdb;PersistSecurityInfo=False");SqlConnectionconn=newSqlConnection(str);

SqlDataAdapterda=newSqlDataAdapter();

15、ASP.NET有哪些內置對象?ASP.NET中有哪些驗證控件?Global.asax文件的功能?

16、.NETFramework有哪些數據提供程序?各自位于哪個命名空間?17、ADO.NET使用System.Data.SqlClient命名空間的類訪問SQLServer數據庫中的數據;使用System.Data.OleDb訪問Access數據庫中的數據。。。18、連接字符串的設置、數據庫連接組件的用法、19、OleDbCommand控件的使用

20、有幾種方法可以實現頁面跳轉?

21、.aspx中主要控件

包括:TextBox控件、下拉列表框(DropDownList)、驗證控件、Button控件、RangeValidator、GridView、DataSet控件

22、VisualStudio.NET的窗口解決方案資源管理器、類視圖、資源視圖、屬性可以查看哪些內容?23、關鍵字

interface從派生類中訪問基類的成員,可以使用base關鍵字、this關鍵字、overrideg、using關鍵字作用

調用被隱藏的基類的成員,必須要使用base關鍵字。若訪問被繼承但是沒有被簽名相同的派生類成員隱藏的基類成員,則不必使用base關鍵字,因為它們在派生類中仍然是唯一的。

24、Web.config文件的功能

Web站點的配置,可以直接在Internet服務管理器(IIS)上進行,使用也比較方便,但是這種方法有一個缺點:擴展性和靈活性較差。為了提高擴展性和靈活性,ASP.NET專門設置一個Web.config文件來保存配置信息。與Global.asax文件不同,Web.config不一定要放在Web應用程序的根目錄下。同一個Web應用程序下的所有子目錄都可以擁有自己的Web.config文件。此時IIS會先繼承根目錄下的配置設置,如果遇到相同的配置標記,則現行目錄下的Web.config配置將覆蓋根目錄下同名的配置設置。

1)配置與調用數據庫鏈接字符串

在Web.config文件中可以使用配置節(jié)來配置應用程序的配置數據庫鏈接字符串。在配置數據庫鏈接字符串時,使用方式,并設置兩個鍵/值對,鍵的名稱為name和connectionString。配置數據庫鏈接字符串的程序代碼如下:

采用下面方式可以讀取此種設置方式:

stringsqldb=ConfigurationManager.ConnectionStrings["Sqlserver"].ConnectionString;

也可以在與之間設置數據庫的鏈接字符串。代碼如下:

"RemoteOnly"只對不在本地Web服務器上運行的

用戶顯示自定義(友好的)信息。出于安全目的,建議使用此設置,以便不向遠程客戶端顯示應用程序的詳細信息。-->配置節(jié)

配置節(jié)可以用來配置應用程序級別跟蹤,為應用程序中的每一頁啟用跟蹤日志輸出。配置節(jié)的一種配置的程序代碼如下:

配置節(jié)

配置節(jié)用來配置應用程序的身份驗證策略,主要包括有Windows、Form、Passport和None。配置節(jié)的一種配置的程序代碼如下:

25、數據庫中表的增加、查找、修改和刪除。

26、驗證控件

ASP.NET驗證控件控件名功能RangeValidatorRegularExpressionValidatorRequiredFieldValidatorValidationSummaryCustomValidatorCompareValidator檢查用戶的輸入是否在一個特定的范圍內檢查用戶的輸入是否與正則表達式所定義的模式一致檢查用戶是否在輸入控件中輸入了數據顯示頁面上所有驗證控件所搜索到的驗證錯誤通過用戶自定義函數判定輸入的數據是否有效將輸入控件的值同常數值或其它輸入控件的值相比較,以確定兩個值是否與由比較運算符(>、=、Global.asax文件,正如在第九章中已經介紹到的,Global.asax文件必須存放在Web主目錄中,當瀏覽器與Web服務器連接時,會先去檢查Web主目錄有沒有Global.asax文件,若有,就先去執(zhí)行該文件。在Global.asax文件中有一些特定的事件很有用,下面按事件觸發(fā)順序給出幾個常用的事件:

1)、Application_Start事件

第一個用戶首次請求頁面時觸發(fā)。

2)、Session_Start事件

每個用戶首次請求頁面時觸發(fā)。

3)、Session_End事件

在關閉應用程序或每個用戶在規(guī)定時間內沒有提出請求時觸發(fā)。

4)、Application_End事件

在關閉應用程序或最后一個用戶在規(guī)定時間內沒有提出請求時觸發(fā)。

一般情況下,可以在Application_Start事件中定義并初始化公用變量,以便所有請求頁面的用戶都能共享這些變量。由于每個用戶都有自己的Session,所以可以在Session_Start事件中為客戶設置初始化信息。

29、簡單數據綁定和復雜數據綁定30、單值綁定和多值綁定

1、單值綁定

單值綁定是指將一個數據綁定到一個單值控件上,單值控件一次顯示一個數據。大多數Web服務器控件和HTML控件都是單值控件,如TextBox、Label、Input(Text)控件。其實,所有的控件都允許把數據賦予它的某個屬性,以完成單值綁定。例如,在實際應用中,可以使用ADO.NET技術從數據庫中獲得某個數據,然后將其賦予Label的Text屬性或ListBox的BackColor屬性等,就完成了單值綁定。

2、多值綁定

多值綁定是指將一組數據綁定到多值控件上,多值控件可以同時顯示一個或多個數據記錄,如Web服務器控件的ListBox、RadioButtonList、CheckBoxList等。在Web應用中,.NET提供了多值數據綁定控件又可以分為:列表控件和復合綁定控件。列表控件有:DropDownList、ListBox、RadioButtonList和CheckBoxList控件等;復合綁定控件有Repeater、DataList、以及由DataGrid控件改進的GridView控件。

另外,根據綁定數據的時間不同,.NET的數據綁定技術還可以分為以下兩種:1)、在設計時綁定:在設計系統(tǒng)時指定綁定控件的數據源。

2)、在運行時綁定:用編程的方式,在系統(tǒng)運行時指定綁定控件的數據源。

31、Web服務器控件

屬于System.Web.UI.WebControls命名空間,大多數Web服務器控件類是從該命名空間的基類WebControl直接或間接派生的。32、GridView控件

GridView控件是ASP.NET2.0新增加的控件,是最常用的數據綁定控件,用于以表格形式在頁面上顯示數據。

.1GridView控件概述

GridView控件是一個網格狀的數據綁定控件,用于以表格的形式來顯示、編輯和刪除多種不同數據源(數據庫、XML文件等)中的數據。以表格顯示數據源的值,表中每列表示一個字段,而每行表示一條記錄。GridView控件具有如下功能:

1)、通過數據源控件自動綁定和顯示數據。2)、內置排序、更新和刪除功能。3)、內置分頁、行選擇功能。

4)、可通過主題和樣式進行自定義外觀。

添加GridView控件,可以在頁面的HTML視圖中通過添加代碼實現。例如,要添加ID為“GridView1”的控件,代碼如下:

或在設計視圖中直接拖拽工具箱中的GridView控件圖標來添加。添加后的控件如圖10.5所示。

圖10.5GridView控件設計視圖

.2常用屬性、方法和事件

1、常用屬性

GridView控件功能很強大,常用的屬性有:

AllowSorting屬性:獲取或設置一個值,該值指示是否啟用排序。

AutoGenerateColumns屬性:獲取或設置一個值,該值指示是否為數據源中的每個字段自動創(chuàng)建綁定字段。

Columns屬性:獲取表示GridView控件中列字段的DataControlField對象的集合。CssClass屬性:獲取或設置由Web服務器控件在客戶端呈現的級聯樣式表(CSS)類。

DataMember屬性:當數據源包含多個不同的數據項列表時,獲取或設置數據綁定控件綁定到的數據列表的名稱。

DataSource屬性:獲取或設置對象,數據綁定控件從該對象中檢索其數據項列表。DataSourceID屬性:獲取或設置控件的ID,數據綁定控件從該控件中檢索其數據項列表。EditIndex屬性:獲取后設置要編輯的行的索引。

EditRowStyle屬性:獲取對TableItemStyle對象的引用,使用該對象可以設置GridView控件中為進行編輯而選中的行的外觀。

Page屬性:獲取對包含服務器控件的Page實例的引用。

Rows屬性:獲取表示GridView控件中數據行的GridViewRow對象的集合。SelectedIndex屬性:獲取或設置GridView控件中的選中行的索引。

ShowFooter屬性:獲取或設置一個值,該值指示是否在GridView控件中顯示腳注行。

ShowHeader屬性:獲取或設置一個值,該值指示是否在GridView控件中顯示標題行。

SortDirection屬性:獲取正在排序的列的排序方向。

SortExpression屬性:獲取與正在排序的列關聯的排序表達式。2、常用方法

GridView控件常用方法有:

DataBind()方法:將數據源綁定到GridView控件。

DeleteRow()方法:從數據源中刪除位于指定索引位置的記錄。FindControl()方法:在當前的命名容器中搜索指定的服務器控件。

Sort()方法:根據指定的排序表達式和方向對GridView控件進行排序。UpdateRow()方法:使用行的字段值更新位于指定行索引位置的記錄。3、常用事件

GridView控件提供在導航或編輯操作之前和之后發(fā)生的事件,而在每次發(fā)生事件時都可以運行一個自定義程序。GridView控件常用的事件有:

PageIndexChanged事件:在單擊某一頁導航按鈕時,但在GridView控件處理分頁操作之后發(fā)生。

PageIndexChanging事件:在單擊某一頁導航按鈕時,但在GridView控件處理分頁操作之前發(fā)生。

RowCancelingEdit事件:單擊編輯模式中某一行的“取消”按鈕以后,在該行退出編輯模式之前發(fā)生。

RowCommand事件:當單擊GridView控件中的按鈕時發(fā)生。RowCreated事件:在GridView控件中創(chuàng)建行時發(fā)生。

RowDataBound事件:在GridView控件中將數據行綁定到數據時發(fā)生。

RowDeleted事件:在單擊某一行的“刪除”按鈕時,但在GridView控件刪除該行之后發(fā)生。此事件常用于檢查刪除操作的結果。

RowDeleting事件:在單擊某一行的“刪除”按鈕時,但在GridView控件刪除該行之前發(fā)生。此事件常用于取消刪除操作。

RowEditing事件:發(fā)生在單擊某一行的“編輯”按鈕以后,GridView控件進入編輯模式之前。此事件通常用于取消編輯操作。

RowUpdated事件:發(fā)生在單擊某一行的“更新”按鈕,并且GridView控件對該行進行更新之后。此事件通常用于檢查更新操作的結果。

RowUpdating事件:發(fā)生在單擊某一行的“更新”按鈕以后,GridView控件對該行進行更新之前。此事件通常用于取消更新操作。

SelectedIndexChanged事件:發(fā)生在單擊某一行的“選擇”按鈕,GirdView控件對相應的選擇操作進行處理之后。此事件常用于在該控件中選定某行之后執(zhí)行某項任務。SelectedIndexChanging事件:發(fā)生在單擊某一行的“選擇”按鈕以后,GirdView控件對相應的選擇操作進行處理之前。此事件常用于取消選擇操作。

Sorted事件:在單擊用于列排序的超鏈接時,但在GridView控件對相應的排序操作進行處理之后發(fā)生。此事件常用于在用戶單擊用于列排序的超鏈接之后執(zhí)行某個任務。

Sorting事件:在單擊用于列排序的超鏈接時,但在GridView控件相對的排序操作進行處理之前發(fā)生。此事件常用于取消排序操作或執(zhí)行自定義的排序程序。

.3GridView中的字段類型

GridView控件中的每一列由一個DataControlField對象表示。默認情況下,AutoGenerateColumns屬性被設置為true,為數據源中的每一個字段創(chuàng)建一個AutoGeneratedField對象。然后每個字段作為GridView控件中的列呈現出來,其順序和每個字段在數據源中的順序相同。

將AutoGenerateColumns屬性設置為false,然后可以自己定義列字段集合,也可以手動控制哪些字段將顯示在GridView控件中。列字段集合可以用聲明方式定義,需要在GridView控件的開始和結束標記之間添加標記。然后在此標記之間列出想要包含在內的列字段,這些包含在內的列將以所列出的順序添加到Columns集合中。Columns集合存儲該控件中的所有列字段,并可以以編程方式管理GridView控件中的列字段。

不同的列字段類型決定控件中各列的行為。下面給出可以使用的不同列字段類型:BoundField:顯示數據源中某個字段的值,是GridView控件的默認列類型。

ButtonField:為GridView控件中的每一項顯示一個命令按鈕,即整列由按鈕組成,可以是Button、ImageButton或LinkBotton。

CheckBoxField:為GridView控件中的每一項顯示一個復選框。這種列字段類型常用于顯示布爾值類型的字段。

CommandField:在GridView控件中顯示用于執(zhí)行選擇、編輯、插入或刪除操作的命令按鈕。這些命令按鈕不需要編寫任何代碼就可以實現相應的操作。

HyperLinkField:將數據源中的某個字段的值在GridView控件中顯示為超鏈接。ImageField:為GridView控件中的每一項顯示一個圖像。

TemplateField:根據指定的模板為GridView控件中的每一項顯示用戶定義的內容。常用于顯示控件。

.4GridView數據顯示

GridView控件可綁定到數據源控件以及實現了System.Collections.IEnumerable接口的任何數據,如System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable等。顯示這些數據分為兩種情況:自動顯示數據和定制顯示數據。

1、自動顯示數據

若要綁定到某個數據源,將GridView控件的DataSourceID屬性設置為該數據源控件的ID值。GridView控件自動綁定到指定的數據源控件,還可以非常簡單地進行數據的顯示。較常用的數據源是SqlDataSource。下面通過一個實例:介紹自動顯示數據的過程。將數據表StudentInfo中的數據通過SqlDataSource數據源自動顯示在GridView中。

1)、新建項目,在項目中創(chuàng)建GVexample.aspx頁面。2)、在頁面上添加一個GridView控件,在本例中保留的默認設置。3)、通過SqlDataSource創(chuàng)建一個訪問關系數據庫的控件。

4)、將GridView的DataSourceID設置為SqlDataSource對象的ID。設置完后的頁面如圖所示。

GridView自動顯示數據界面

對應GVexample.aspx頁面的HTML代碼如下:htmlxmlns="">

GridView實例

此實例不需要編寫任何代碼,直接編譯運行,運行結果如圖10.7所示。

圖10.7GridView自動顯示數據運行結果

為了使GridView的外觀更加美觀,可以設置以下屬性:

AlternatingRowStyle屬性:GridView控件中的交替數據行的樣式設置。當設置了此屬性后,數據行交替使用RowStyle設置和AlternatingRowStyle設置進行顯示。EditRowStyle屬性:GridView控件中正在編輯的行的樣式設置。

EmptyDataRowStyle屬性:當數據源不包含任何記錄時,GridView控件中顯示空數據行的樣式設置。

FooterStyle屬性:腳注行的樣式設置。HeaderStyle屬性:標題行的樣式設置。PagerStyle屬性:頁導航行的樣式設置。RowStyle屬性:數據行的樣式設置。

SelectedRowStyle屬性:選中行的樣式設置。

在IDE環(huán)境中,可以方便地在屬性窗口中設置這些屬性。此外,GridView控件內置了一個GridView任務設計器,通過其中的“自動套用格式”超級鏈接,可以自動套用.NET內置的一些常見的格式。

2、定制顯示數據

在例10-4中,GridView控件的AutoGenerateColumns屬性保持的默認值:true,這為數據源中的每一列自動創(chuàng)建一個BoundField列,其標頭為該列在數據源中的列名,數據按在數據源中的順序全部顯示出來。在有些情況下,不需要這樣顯示。如,想要改變列的先后順序或改變GridView中顯示的標頭,或顯示數據源中部分字段的值。上述情況,就需要定制顯示數據。若要定制顯示數據,首先要設置AutoGenerateColumns屬性為false,即不能讓GridView自動產生列,而是通過編輯Columns屬性設置各個列的定義。

下面通過實例:例10-5來介紹定制顯示數據方式。在例10-5中,有兩個頁面Show.aspx和Display.aspx頁。在Show.aspx頁中添加一個GridView控件,在此控件中只顯示表StudentInfo表中的學號、姓名和班級,并將班級顯示為超鏈接的列,單擊超鏈接跳轉到Display頁面。

例10-1)、新建項目

新建項目,在項目中加入Show.aspx和Display.aspx頁。在Show.aspx頁中加入一個GridView控件,設置其AutoGenerateColumns屬性為false,然后,編輯Columns屬性設置各個列的定義。Display.aspx頁不需要做任何設置,創(chuàng)建完后的項目如圖10.8所示。

圖10.8GridView定制顯示數據界面

對應的Show.aspx頁的HTML代碼如下:

這里,語句實現添加標題為“編號”的列,而該列要顯示的數據由屬性DataField決定,當賦值為StudentID,表示可以顯示數據源中的字段“StudentID”。在Columns定義的最后,添加了超鏈接列:HyperLinkField。下面給出HyperLinkField的屬性:

DataNavigateUrlFields屬性:獲取或設置數據源中字段的名稱,用于為HyperLinkField對象中的超鏈接構造URL。

DataNavigateUrlFormatString屬性:獲取或設置用于指定格式的字符串,HyperLinkField對象中的超鏈接的URL將以此格式呈現。

DataTextField屬性:獲取或設置數據源中的字段的名稱,此名稱包含要為HyperLinkField對象中的超鏈接標題顯示的文本。

DataTextFormatString屬性:獲取或設置用于指定格式的字符串,HyperLinkField對象中的超鏈接標題將以此格式顯示。Text屬性:超鏈接列中顯示的文本。

NavigateUrl屬性:當單擊列中的超級鏈接時鏈接到的URL。在本例中,設置了如下屬性:DataNavigateUrlFields="StudentID"

DataNavigateUrlFormatString="Display.aspx?id={0}"DataTextField="StudentID"

DataTextFormatString="#{0}>>"NavigateUrl="~/Display.aspx"這里,"Display.aspx?id={0}"中的“{0}”表示要傳遞的數據字段對應單擊行的數據本身。2)、編輯代碼

因為,沒有指定GridView的數據源,因此需要編輯代碼使用DataBind方法將數據源綁定到GridView中。雙擊Show.aspx的設計頁面,進入編輯頁面,輸入如下代碼:protectedvoidPage_Load(objectsender,EventArgse){

//連接數據庫

SqlConnectionconn=newSqlConnection();

conn.ConnectionString="Server=localhost;Database=Student;UserID=sa;PWD=sa";

//使用SqlCommand提交查詢命令

SqlCommandselcomm=newSqlCommand("select*fromStudentInfo",conn);try{

conn.Open();//打開連接//獲取數據適配器

SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=selcomm;DataSetds=newDataSet();da.Fill(ds,"STable");

GridView1.DataSource=ds;GridView1.DataBind();}

catch(Exceptionex){

Response.Write(ex.Message);}finally{

conn.Close();//關閉連接}}

然后在編輯Display.aspx頁的代碼,代碼如下:protectedvoidPage_Load(objectsender,EventArgse){

//得到傳遞的參數

stringSID=Page.Request.QueryString["id"];//連接數據庫

SqlConnectionconn=newSqlConnection();

conn.ConnectionString="Server=localhost;Database=Student;UserID=sa;PWD=sa";

//使用SqlCommand提交查詢命令

SqlCommandselcomm=newSqlCommand("select*fromStudentInfowhereStudentID="+SID+"",conn);try{

conn.Open();//打開連接//創(chuàng)建SqlDataReader

SqlDataReaderdr=selcomm.ExecuteReader();if(dr.Read()){

Response.Write("學號:"+dr["XueHao"]+"");Response.Write("姓名:"+dr["SName"]+"");Response.Write("班級:"+dr["Class"]+"");}}

catch(Exceptionex){

Response.Write(ex.Message);}

finally{

conn.Close();//關閉連接}

}

3)、編譯運行

運行Table.aspx頁面,得到的運行結果如圖10.9所示。

圖10.9GridView定制顯示數據結果

從圖10.9可見,GridView控件中并沒有把StudentInfo表中的所有列數據顯示出來,而是只顯示出要求顯示的列:編號、學號、姓名和班級,并把最后一列設為超級鏈接列。單擊任何一行的超級鏈接,都將跳轉到Display.aspx頁,并在Display.aspx頁中顯示對應的學生信息。若單擊第二行的超鏈接,運行結果如圖10.10所示。

圖10.10超鏈接頁面運行結果

10.3.5編輯和刪除數據

GridView控件具有一些內置功能,允許用戶不需要編程就可以編輯或刪除記錄。使用內置編輯或刪除功能的步驟如下:

1)、為GridView添加需要的修改、刪除、選擇列。為GirdView控件添加這些列很簡單,在屬性窗口中,將AutoGenerateDeleteButton屬性、AutoGenerateEditButton屬性和AutoGenerateSelectButton屬性的值設置為True,就可以把這些行添加上。在例10-4的基礎上,添加這些列后的GridView外觀如圖10.11所示。

圖10.11添加編輯、刪除、選擇列的GridView界面

2)、配置數據源。

這里采用的是SqlDataSource數據源,若想通過GridView控件內置功能實現刪除、修改數據等操作,需要在對SqlDataSource數據源配置時,單擊“高級”按鈕,在彈出的對話框中選中“生成INSERT,UPDATE,DELETE語句”,而且,在選擇數據時,一低要把主鍵字段選上。

然后,運行頁面就可以直接實現編輯、刪除的功能了。運行頁面,單擊第一行的編輯按鈕,頁面如圖10.12所示。

圖10.12處于編輯狀態(tài)的GridView數據行

當然也可以使用事件和模板來自定義GridView控件的編輯或刪除功能,這里不再詳細描述,在具體應用中,可視情況選擇使用。

10.3.6分頁顯示數據和數據排序

如果顯示數據太多,GridView控件可以分頁進行顯示,與這個功能相關的屬性有:AllowPaging屬性:獲取或設置一個值,該值指示是否啟動分頁。

PageCount屬性:獲取在GridView控件中顯示數據源記錄所需的頁數。PageIndex屬性:獲取或設置當前顯示頁的索引。

PageSize屬性:獲取或設置GridView控件在每頁上所顯示的記錄的數目。

要想在GridView中實現分頁,可以將AllowPaging屬性設置為True,再設置PageSize為一個值,便設定了在每頁上所顯示的記錄行數。若要根據GridView的某一列對數據進行排序,則將AllowSorting屬性設置為True,便可進行排序。

33、34、textBox1.Text被賦值為12,textBox2.Text被賦值為45,label1.Text=textBox1.Text+textBox2.Text;得到是字符串還是數值。35、i+=j;的等效語句是i=j+j嗎?36、Main函數是唯一允許的全局函數37、C#中一條語句必須寫在一行內;

拋出異常

拋出異常有兩種方式。如果是系統(tǒng)自動生成異常類對象,則不需要編寫任何代碼。如,在進行整數除法運行時,當分母為零時,就會自動產生一個System.DivideByZeroException類的對象。如果是強制拋出,則使用throw語句來實現,throw語句用于立即無條件地引發(fā)異常,控制永遠不會執(zhí)行緊跟在throw后面的語句。

Throw語句的形式:Throw[異常對象];

下面給出使用throw語句如何強制拋出異常,如例5-11所示。例5-11

usingSystem;

publicclassThrowTest{

staticvoidMain(){

strings;

Console.WriteLine("請輸入字符串:");s=Console.ReadLine();if(s=="C#"){

thrownewArgumentNullException();}

Console.Write("Thestringsisnull");//不會執(zhí)行

}}

運行結果:

在例5-11中,當輸入字符串“C#”后,賦值給s。這本來是正確的輸入,然而由于強制拋出“參數為空”的異常,因此輸出上面的結果。而throw后面的Console.Write("Thestringsisnull")語句不會得到執(zhí)行。

捕獲處理異常

異常處理由try語句處理,try語句提供了一種機制來捕捉塊執(zhí)行過程中發(fā)生的異常,它有三中形式:

try-catch:可有一個或多個catch塊語句的try塊語句。try-finally:跟有一個finally塊語句的try塊語句。

try-catch-finally:跟有一個或多個catch塊語句和一個finally語句的try塊語句。catch用于處理語句塊中出現的異常,catch的格式是:catch(class-type標識符)

catch語句的參數是一個類類型,此類必須是System.Exception或者是它的派生類的類型。當一個catch語句同時指定了類類型和標識符時,就聲明了一個同名同類型的異常變量。異常變量相當于一個只讀的局部變量,它的有效區(qū)間是catch塊語句內部。在catch塊語句執(zhí)行過程中,異常變量代表當前正被處理的異常。異常對象中有很多重要的錯誤信息,若想引用異常對象,就必須定義異常變量。

下面分別介紹try語句的三種形式。1、try-catch

try-catch語句是可有一個或多個catch塊語句的try塊語句,一般格式如下:try

{;//可能引發(fā)異常的語句}catch(異常對象聲明1)

{;//異常處理,異常信息等};

catch(異常對象聲明n)

{;//異常處理,異常信息等}

在同一個try-catch語句中可以有多個catch子句,如果某一catch語句指定的類型和它之前的catch語句指定的類型一致或者由此類型派生而來,會發(fā)生錯誤,因此尋找異常的處理是按照catch子句出現的順序逐一檢查。在catch語句中,異常對象聲明是可選的,如果catch子句使用時不帶任何參數,它可以捕捉任何類型的異常,這樣的catch語句稱為通用catch語句,等同于catch(System.Exception)。Try語句中只能存在一條通用catch語句,而且必須是try語句的最后一條catch語句。

下面給出實例:例5-12,來介紹try-catch語句的使用。例5-12

usingSystem;

publicclasstrycatchTest{

staticvoidMain(){

try{

intx,y,z;

Console.WriteLine("請輸入兩個數據分別賦值給x和y:");x=int.Parse(Console.ReadLine());y=int.Parse(Console.ReadLine());z=x/y;

Console.WriteLine("z={0}",z);}

catch(FormatExceptionae){

Console.WriteLine(ae.ToString());}

catch(DivideByZeroExceptionbe){

Console.WriteLine(be.ToString());}

catch(Exceptionce){

Console.WriteLine(ce.ToString());}}}

運行結果:

上面的結果是,首先輸入數字10,然后回車輸入5,得到正確的運算結果。

如果,在輸入x和y值時,輸入10后,按空格再輸入5,則引發(fā)FormatException異常,出現下面的提示:

如果首先輸入數字時,然后回車輸入數字0,引發(fā)了DivideByZeroException異常,如下所示:

若將上例中的第二個catch語句和第三個交換位置,編譯時會出現如下錯誤。

2、try-finally

Finally塊用于清除在try塊中分配的任何資源。無論是程序正常執(zhí)行或是執(zhí)行了break,continue或goto語句,還是把異常處理傳遞到try塊語句之外,都必須執(zhí)行finally塊中的語句。Finally塊語句中不允許出現return語句。

這種語句的形式如下:try{;//可能引發(fā)異常的語句}finally

{;//包含異常處理程序和清理代碼}

若將上面例5-12中的catch塊語句全部去掉,然后在try塊語句下面輸入如下語句:finally{

Console.WriteLine("thankyou!");

}

運行程序,輸入數字10,然后回車輸入0,會輸出如下結果:

從結果中可見,運行后引發(fā)了DivideByZeroException異常,盡管捕捉了異常,仍然會執(zhí)行包含在finally塊中的輸出語句,即Console.WriteLine("thankyou!")語句。

3、try-catch-finally

try-catch-finally語句可以看成是try-catch和try-finally語句的組合,格式如下:try

{;//可能引發(fā)異常的語句}catch(異常對象聲明1)

{;//異常處理,異常信息等};

catch(異常對象聲明n)

{;//異常處理,異常信息等}finally

{;//包含異常處理程序和清理代碼}

try-catch-finally語句的通常用法是在try塊中獲取并使用資源,在catch塊中處理異常情況,在finally塊中釋放資源。

下面,在例5-12中,在catch塊語句后加入如下語句:finally{

Console.WriteLine("thankyou!");}

運行程序,輸入數字10,然后回車輸入0,會輸出如下結果:

從結果中可以看到,在catch塊語句中處理了引發(fā)的DivideByZeroException異常,并且執(zhí)行了finally塊中的輸出語句。除了使用預定義的異常類型外,用戶還可以自定義異常類,以滿足自己的具體需要。用戶自定義異常類,一般從ApplicationException類派生,因為該類由用戶程序引發(fā),而不是公共語言運行庫引發(fā)。

友情提示:本文中關于《基于.NET的Web程序設計知識點總結》給出的范例僅供您參考拓展思維使用,基于.NET的Web程序設計知識點總結:該篇文章建議您自主創(chuàng)作。

來源:網絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯系我們及時刪除。


基于.NET的Web程序設計知識點總結》由互聯網用戶整理提供,轉載分享請保留原作者信息,謝謝!
鏈接地址:http://m.7334dd.com/gongwen/673124.html