|
.NET程序員的數(shù)據(jù)庫(kù)面試題(含問(wèn)和答 )
來(lái)源: 發(fā)布時(shí)間:2008-04-02 瀏覽:1978人次 字體:[大 中 小] Q1:維護(hù)數(shù)據(jù)庫(kù)的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯?為什么 答:盡可能用約束(包括CHECK、主鍵、唯一鍵、外鍵、非空字段)實(shí)現(xiàn),這種方式的效率最好;其次用觸發(fā)器,這種方式可以保證無(wú)論何種業(yè)務(wù)系統(tǒng)訪問(wèn)數(shù)據(jù)庫(kù)都能維持?jǐn)?shù)據(jù)庫(kù)的完整性、一致性;最后再考慮用自寫業(yè)務(wù)邏輯實(shí)現(xiàn),但這種方式效率最低、編程最復(fù)雜,當(dāng)為下下之策。 Q2:ADO。NET相對(duì)于ADO等主要有什么改進(jìn)?
答:我個(gè)人認(rèn)為,ADO.NET與ADO相比,優(yōu)勢(shì)在于提供了數(shù)據(jù)集和數(shù)據(jù)適配器,有利于實(shí)現(xiàn)分布式處理,降低了對(duì)數(shù)據(jù)庫(kù)服務(wù)器資源的消耗 Q3:ASP。NET與ASP相比,主要有哪些進(jìn)步?
答:如果一定要說(shuō)ASP.NET比ASP進(jìn)步,還是有的:在形式上實(shí)現(xiàn)了面向?qū)ο缶幊?;預(yù)編譯的服務(wù)器端代碼;更好的安全機(jī)制(那些ASPX文件的后臺(tái)代碼是以另外一個(gè)賬號(hào)運(yùn)行的,與啟動(dòng)IIS的賬號(hào)不相同)等。 Q4:C#中的委托是什么?事件是不是一種委托? 答:委托本質(zhì)上是一種“方法接口”,它相當(dāng)于C/C 中的函數(shù)指針,當(dāng)然它比函數(shù)指針安全,在C#中通常用于事件處理。與JAVA相比,可以避免使用大量小粒度的匿名類。 事件不是委托,不過(guò)由于事件的性質(zhì)決定了處理它的程序邏輯能訪問(wèn)的參數(shù),因此,在C#中處理事件的邏輯都包裝為委托(一種“方法接口”)。實(shí)際上,如果你處理自定義的事件,就像JAVA中那樣用接口實(shí)現(xiàn)也是可以的,不過(guò)這么做在C#一般沒(méi)有什么特別的好處。
Q5.您要?jiǎng)?chuàng)建一個(gè)顯示公司員工列表的應(yīng)用程序。您使用一個(gè)DataGrid控件顯示員工的列表。您打算修改這個(gè)控件以便在這個(gè)Grid的Footer顯示員工合計(jì)數(shù)。請(qǐng)問(wèn)您應(yīng)該怎么做?( C? )
A.重寫OnPreRender事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。
B.重寫OnItemCreated事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。 C.重寫OnItemDataBound事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。 D. 重寫OnLayout事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。 Q6.您要?jiǎng)?chuàng)建ASP.NET應(yīng)用程序用于運(yùn)行AllWin公司內(nèi)部的Web站點(diǎn),這個(gè)應(yīng)用程序包含了50個(gè)頁(yè)面。您想要配置這個(gè)應(yīng)用程序以便當(dāng)發(fā)生一個(gè)HTTP代碼錯(cuò)誤時(shí)它可以顯示一個(gè)自定義的錯(cuò)誤頁(yè)面給用戶。您想要花最小的代價(jià)完成這些目標(biāo),您應(yīng)該怎么做?(多選)( CD )
A.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)Application_Error過(guò)程去處理ASP.NET代碼錯(cuò)誤。 B.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)applicationError節(jié)去處理ASP.NET代碼錯(cuò)誤。 C.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)CustomErrors事件去處理HTTP錯(cuò)誤。 D.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)CustomErrors節(jié)去處理HTTP錯(cuò)誤。 E.在這個(gè)應(yīng)用程序的每一頁(yè)中添加一個(gè)Page指示符去處理ASP.NET 代碼錯(cuò)誤。 F. 在這個(gè)應(yīng)用程序的每一頁(yè)中添加一個(gè)Page指示符去處理ASP.NET HTTP錯(cuò)誤。 Q7.您的公司有一個(gè)DB Server,名為AllWin,其上裝了MS SQLSERVER 2000?,F(xiàn)在需要您寫一個(gè)數(shù)據(jù)庫(kù)連接字符串,用以連接AllWin上SQL SERVER中的一個(gè)名為PubBase實(shí)例的Test庫(kù)。請(qǐng)問(wèn),應(yīng)該選擇下面哪一個(gè)字符串?( B )
A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI” B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI” C. “Data Source= AllWin \PubBase;Initial Category=PubBase;Integrated Security= SSPI” D. “Data Source= AllWin \ PubBase;Database=Test;Integrated Security= SSPI” Q8.您為AllWin公司創(chuàng)建了一個(gè)ASP.NET應(yīng)用程序。這個(gè)應(yīng)用程序調(diào)用一個(gè) Xml Web Service。這個(gè) Xml Web Service 將返回一個(gè)包含了公司雇員列表的DataSet對(duì)象。請(qǐng)問(wèn)您該如何在這個(gè)程序中使用這個(gè) Xml Web Service?( ? )
A.在“引用”對(duì)話框的.Net標(biāo)簽中選擇 System.Web.Services.dll。 B.在“Web引用”對(duì)話框中輸入這個(gè) XML Web service 的地址。 C.在您的 Global.asax.cs 中添加一條 using 語(yǔ)句并指定這個(gè) XML Web service 的地址。 D.在您的 Global.asax.cs 中寫一個(gè)事件處理器導(dǎo)入這個(gè) Xml Web Service 相應(yīng)的 .wsdl 和 .disco 文件。 Q9.您要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序在DataGrid控件中顯示一個(gè)經(jīng)過(guò)排序的列表。產(chǎn)品數(shù)據(jù)被存放于一個(gè)名為PubBase的Microsoft SQL Server 數(shù)據(jù)庫(kù)。每個(gè)產(chǎn)品的主鍵是ProductID,Numeric型并且每個(gè)產(chǎn)品有一個(gè)字母描述字段,名為ProductName。您使用一個(gè)SqlDataAdapter對(duì)象和一個(gè)SqlCommand對(duì)象通過(guò)調(diào)用一個(gè)存儲(chǔ)過(guò)程從數(shù)據(jù)庫(kù)中獲取產(chǎn)品數(shù)據(jù)。您將SqlCommand對(duì)象的CommandType屬性設(shè)置為CommandType.StoredProcedure,并將它的CommandText屬性設(shè)置為procProductList。您成功的獲取了一個(gè)DataTable對(duì)象,其中是已經(jīng)按ProductID降序排列的產(chǎn)品列表。您打算顯示以相反的字母順序排列的ProductName,請(qǐng)問(wèn)該怎么做? ( B )
A. 將SqlCommand對(duì)象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。 B. 創(chuàng)建一個(gè)基于這個(gè)DataTable對(duì)象的新的DataView并將這個(gè)DataView的Sort屬性設(shè)置為“ProductName DESC”。然后將這個(gè)DataView對(duì)象綁定到DataGrid控件。 C. 將DataGrid控件的AllowSorting屬性設(shè)置為True,并將DataGridColumn的SortExpression屬性設(shè)置為 “ProductName DESC”.以顯示ProductName。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。 D. 將DataTable對(duì)象的DisplayExpression屬性設(shè)置為 “ORDER BY ProductName DESC”.。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。 Q10.C#代碼實(shí)現(xiàn),確保windows程序只有一個(gè)實(shí)例(instance)
/// ///應(yīng)用程序的主入口點(diǎn)。 /// [STAThread] staticvoid Main() { //防止程序多次運(yùn)行 if(!OneInstance.IsFirst("GetPayInfo")) { MessageBox.Show ("警告:程序正在運(yùn)行中! 請(qǐng)不要重復(fù)打開程序!可在右下角系統(tǒng)欄找到!","程序錯(cuò)誤提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop); return; } Application.Run(new Form1()); } // ******************* 防止程序多次執(zhí)行 ************************** publicabstractclass OneInstance { /// ///判斷程序是否正在運(yùn)行 /// /// ///如果程序是第一次運(yùn)行返回True,否則返回False publicstaticbool IsFirst(string appId) { bool ret=false; if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero) { CreateMutex(IntPtr.Zero,0,appId); ret=true; } return ret; } [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] privatestaticextern IntPtr OpenMutex( uint dwDesiredAccess, // access int bInheritHandle, // inheritance option string lpName // object name ); [DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr CreateMutex( IntPtr lpMutexAttributes, // SD int bInitialOwner, // initial owner string lpName // object name ); } Q11. 簡(jiǎn)述 private、 protected、 public、 internal 修飾符的訪問(wèn)權(quán)限。
private : 私有成員, 在類的內(nèi)部才可以訪問(wèn)。protected : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問(wèn)。public : 公共成員,完全公開,沒(méi)有訪問(wèn)限制。internal: 在同一命名空間內(nèi)可以訪問(wèn)。 Q12. 寫出一條Sql語(yǔ)句: 取出表A中第31到第40記錄(SQLServer, 以自動(dòng)增長(zhǎng)的ID作為主鍵, 注意:ID可能不是連續(xù)的。)
select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) Q13 .列舉ASP.NET 頁(yè)面之間傳遞值的幾種方式。
1. 使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session變量 3.使用Server.Transfer 2。請(qǐng)說(shuō)明在.net中常用的幾種頁(yè)面間傳遞參數(shù)的方法,并說(shuō)出他們的優(yōu)缺點(diǎn)。 session(viewstate) 簡(jiǎn)單,但易丟失 application 全局 cookie 簡(jiǎn)單,但可能不支持,可能被偽造 input ttype="hidden" 簡(jiǎn)單,可能被偽造 url參數(shù)簡(jiǎn)單,顯示于地址欄,長(zhǎng)度有限 數(shù)據(jù)庫(kù)穩(wěn)定,安全,但性能相對(duì)弱 Q14.override與重載的區(qū)別
Override用來(lái)重寫父類的方法,重載使用相同名的方法或操作符擁有不同類型的參數(shù) Q15、.net的錯(cuò)誤處理機(jī)制是什么
.net錯(cuò)誤處理機(jī)制采用try->catch->finally結(jié)構(gòu),發(fā)生錯(cuò)誤時(shí),層層上拋,直到找到匹配的Catch為止。 本文來(lái)自: IT知道網(wǎng)(http://www.) 詳細(xì)出處參考:http://www./html/net/netmianshi/20080402/1189.html
|
|
|