1. 程式人生 > WINDOWS開發 >C#.NET重點知識點彙總(一)

C#.NET重點知識點彙總(一)

A.填空題:
1.類的三大特性是(封裝性)(繼承性)(多型性)。
2.在SELECT語句的FROM子句中最多可以指定(256)個表或檢視,相互之間要用(,)分隔,當所查詢的表不在當前資料庫時,可用(資料庫.所有者名稱.物件名稱)格式來指出表或檢視物件。
3.建立儲存過程的命令是(create procedure),刪除表的命令是(drop table)。
4.計算欄位的累加和的函式是:(Sum()),統計專案數的函式是:(Count())。
5.關係資料庫中,主鍵是(為標識表中唯一的實體)。
6.宣告抽象類的關鍵字是(abstract),抽象類不能(例項化)。
7..NET執行庫支援被稱為(委託)的引用型別,其作用類似於C++中函式指標的用途。

8.XML的全稱是(可擴充套件的標記語言)。
9.C#中所有的型別實質上都是從(object)類派生而來的。
10. 宣告靜態變數的關鍵字是(static),宣告常量的關鍵字是(const)。
11.C#中處理記憶體管理功能的是(無用單元收集器)。
12.在C#中用於顯式地將一個值或引用轉換為另一種不同的型別稱為(強制型別轉換)
13.在ADO.NET中,command物件是用(ExecuteNomQuery)(ExecuteScalar)(ExecuteReader)方法執行命令。
14.B/S通常使用的結構設計模型分為(表示層)(業務邏輯層)(資料庫層)。
15.SQL SERVER中索引型別包括的三種類型分別是(唯一索引)(簇索引)(非簇索引)。

B.簡答題:
1.什麼是中間語言(IL)?它的作用?
中間語言代替了COM的呼叫約定和記憶體管理標準,所有其他的NET語言都將編譯為這種語言,結果就是程式設計師不必來確保他們的程式碼將與一種確定的二進位制標準進行互操作,而是由不同。NET語言編譯器將程式碼編譯到IL中來確保這種互操作性。

2.什麼是裝箱和拆箱?
裝箱是將值型別轉換為引用型別的過程,相反的過程(即將引用型別轉換為值型別)被稱為拆箱。在裝箱是不需要顯示的型別轉換,但在拆箱是需要型別轉換,這是因為在拆箱是物件可以被轉換為任何型別。

3.出ADO.NET中讀寫資料庫的主要的幾個類?它們的作用?
SqlConnection OleDbConnection ---連線資料庫
SqlCommand OleDbCommand----SQL語句的包裝或儲存過程的呼叫
SqlDataAdapter OleDbDataAdapter---用於儲存選擇,插入,更新和刪除語句的類,填充DataSet。
SqlDataReader OleDbDataReader---只向前的連線資料庫讀取器
DataSet----用於資料庫操作的資料集。

4.C#中介面和類有什麼異同?
介面類似於類,但它們有區別:a.介面中的方法沒有訪問限制符;b.在介面中不執行任何方法;c.介面中的方法不能如抽象方法那樣定義為虛擬和顯式的,由實現介面的類來決定如何實現方法;d.介面不能示例化,沒有建構函式,也沒有欄位,在介面中不允許進行操作符的過載。

5. 解釋ASP.NET中的code-behind?
將頁面的編碼和功能編碼分離,使程式碼的改進更為方便。

6.什麼是ASP.NET中的使用者控制元件?
使用者控制元件是用ASP.NET程式碼所建立的控制元件,它的建立如同在標準的ASP.NET WEB頁中建立控制元件一樣,不同之處在於一旦建立了使用者控制元件,就可以在多個ASP.NET頁面中重複使用他們。

7.在C#中,string str = null 與 string str = “” 請儘量說明其中的區別。
string str = null 是不給他分配記憶體空間,而string str = ““ 給它分配長度為空字串的記憶體空間。

8. 什麼是受管制程式碼?
在.NET環境中執行的任何程式碼都是受管制程式碼。在。NET環境外部的其他程式碼也執行在WINDOWS上的,為非受管制程式碼。

9.C#中常用的訪問形式?它們各自的作用域?
Public 用來宣告所有物件都可以使用的方法或屬性。
Private 用來指出只有擁有該方法或屬性的類才能訪問該方法或屬性。
Protected 用來指定屬性或方法的作用域,這樣就只有擁有該方法或屬性的類以及該類的派生類才能訪問該屬性或方法。
Internal 用來指定屬性或方法在一個程式集內部的作用域。

10. SQL SERVER 中的儲存過程的理解?
儲存過程是一組預先編譯好的T-SQL程式碼,儲存過程可以作為一個單元被使用者的應用程式呼叫.由於是已經編譯好的程式碼,所以執行起來不必再次編譯,從而提高了程式的執行效率。

11.CTS,CLS,CLR分別作何解釋?
公共語言執行時(CLR):它實際管理程式碼,它可以處理和載入程式,執行程式的程式碼,以及提供所有支援服務的程式碼。
公共型別系統(CTS):為了實現語言的互操作性,必須有一組各種語言都認可的基本資料型別,這樣才能對所有語言進行標準化管理。
公共語言規範(CLS):這是確保程式碼可以在任何語言中訪問的最小標準集合,所有用於。

12.ASP.NET和ASP的主要優勢?
a.ASP.NET具有面向物件性;b.ASP.NET使用ADO.NET,使對資料庫操作更快速更強大;
c.ASP.NET支援多種語言,擺脫了ASP只能使用非結構語言(VBSCRIPT,JSCRIPT)編寫的限制;d.ASP.NET具有程式碼繫結技術,使頁面程式碼和功能程式碼的編寫完全分離,具有更好的重用性.

13.NET的錯誤處理機制是什麼?
.net錯誤處理機制採用try->catch->finally結構,發生錯誤時,層層上拋,直到找到所匹配的Catch為止。

14.解釋Page.IsPostBack屬性?
Page.IsPostBack是用來檢查目前網頁是否為第一次載入,當使用者第一次瀏覽這個網頁是Page.IsPostBack會傳會FALSE,否則為TRUE,所以使用該屬性來避免做一些重複的動作。

15..net framework包含哪幾種技術?
.net framewor本事可視為三中不同的技術:公共語言進行時(CLR),框架類庫和實用工具。

16.觸發器分為事前觸發和事後觸發,有何區別?
事前觸發器就是在語句執行之前啟用的觸發器,事後觸發器就是在語句執行後啟用的觸發器。

17.解釋SQL SERVER2000中HAVING的用法?
當完成資料結果的查詢和統計後,可以使用HAVING關鍵字來對查詢和計算的結果進一步篩選。

18.解釋SQL SERVER2000中GROUP BY的用法?
如果需要按某一列資料的值進行分類,在分類的基礎上再進行查詢,就需要使用GROUP BY。

19.解釋下C#中的方法的過載?
C#中允許在一個類中定義方法的不同版本,編譯器會自動根據提供的引數選擇最合適的版本。

20.事務是什麼?
事務的所有操作必須完成,否則事務將被撤消。也就是說,事務是作為一個整體的單位處理,不可以被分割,事務中操作失敗回滾,處理成功時提交。

21.描述下ASP.NET中使用DataReader物件 和DataSet物件的區別?
DataReader物件是隻向前的連線資料讀取器,使用它可以快速有效地訪問資料.
DataSet物件提供一個記憶體中資料的關係表示形式,一整套包括一些表在內的資料(這些表包含資料、對資料進行排序並約束資料),以及表之間的關係.
DataReader物件會使得SQL SERVER的連線處於忙碌樁,以便只有在關閉DataReader之後才可以在這個連線上執行其他操作.
DataSet物件可以可以看作是DATATABLE物件的容器,可以在資料庫操作時將多個表的所有資料都放在DataSet中,用在單獨一次呼叫中將其返回,避免了重複呼叫的過程.
DataSet物件的呼叫將在記憶體開闢一個虛擬的表.因此將佔有相當的記憶體空間。

22.分析類和結構的異同?
a.結構可以繼承介面,但不允許繼承類和其他結構;b.結構是值型別,類是引用型別;
b.結構不允許宣告解構函式;d,結構是從堆疊分配記憶體,而類是從堆上分配記憶體。

23.解釋ADO.NET中的使用Connection 類的close()和dispose()的區別?
Close方法關閉資料庫連線,並將這個連線返回到連線池.因此程式可以再次使用這個連線;Dispose方法釋放所有與連線有關的資源。

24.敘述ADO.NET中的DataAdapte類的作用?
DataAdapte類是資料集和資料提供程式的主要介面。利用這個類能夠填充資料集,管理和維護資料,以及將更新發送回資料儲存器。

25.什麼是WEBSERVICE ?
從表面上看,Web Service就是一個應用程式,它向外界暴露出一個能夠通過Web進行呼叫的API。這就是說,你能夠用程式設計的方法通過Web呼叫來實現某個功能的應用程式。從深層次上看,Web Service是一種新的Web應用程式分支,它們是自包含、自描述、模組化的應用,可以在網路(通常為Web)中被描述、釋出、查詢以及通過Web來呼叫。

26.行下面程式碼後:
String strTemp = "abcdefg 某某某";
Int I System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
問:i=(13) ;j=(11)
原因是什麼?原因是漢字佔2個位元組

27.敘述ASP.NET中的幾種驗證控制元件(equiredFieldValidato,CompareValidator,RangeValidator,RegularExpressionValitor,CustomValidator,ValidationSummary)及作用?
equiredFieldValidator 如果指定的文字控制元件空白,產生錯誤
CompareValidator 將文字控制元件的值與特定值比較,如果返回FALSE,產生錯誤RangeValidator 文字域的值落在一個指定區域外,產生錯誤
RegularExpressionValitor文字域的值與使用常規表示式指定的模式不匹配是,產生錯誤CustomValidator 呼叫自定義邏輯,根據返回的值產生錯誤
ValidationSummary 在一個特定區域內顯示驗證錯誤的文字

C.程式設計題:
1.有三個表,結構如下:
STUDENT(學生證號,姓名,性別,出生年月)
COURSE(課程號,課程名,授課教師)
SC(學生證號,課程號,成績,授課教師)
用標準SQL 語句完成下列操作:
a. 查詢女生的基本情況,並按照學生證號降序排列。
SELECT * FROM STUDENT WHERE 性別=‘女’ ORDER BY 學生證號 DESC
b. 查詢成績在90分以上的學生的姓名
SELECT 姓名 FROM STUDENT WHERE 學生證號 IN
(SELECT 學生證號 FROM SC WHERE 成績 < 90 )
c. 查詢數學類課程的課程號和課程名(模糊查詢,以S開頭)
SELECT 課程號,課程名 FROM COUSE LIKE “S%”
d.查詢選課學生所選課程的課程號和成績,以及該學生的姓名和性別
SELECT SC.課程號,SC.成績,STUDENT.姓名,STUDENT.性別 FROM SC,STUDENT
WHERE SC.學生證號= STUDENT.學生證號
e.查詢03號課程的平均成績
SELECT AVG(成績) FROM SC WHERE 課程號=‘03’
f.刪除成績不及格的學生姓名
DELETE 學生姓名 FROM STUDENT WHERE 學生證號
(SELECT學生證號 FROM SC WHERE 成績〈60)
j.把學生證號為90876的學生所選的01號課程成績改為80分
UPDATE SC SET 成績=80 WHERE (學生證號=‘90876’)AND(課程號=‘01’)

2.SQLSERVER伺服器中,給定表 table1 中有兩個欄位 ID、LastUpdateDate,ID表示更新的事務號, LastUpdateDate表示更新時的伺服器時間,請使用一句SQL語句獲得最後更新的事務號。
SELECT ID FROM table1
WHERE LastUpdateDate = (SELECT MAX(LastUpdateDate) FROM table1)