.NET绝版面试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

.net绝版面试题本人在深圳面试十来家,发现百分之八十的题目都是来之于以下题目,今天分享给大家,好好背吧.1、@page指令只能在_aspx___文件(填写扩展名)中使用,而@Control指令只能用在_ascx___文件(填写扩展名)中使用.2、说明控件DataGrid,DataTable,DataView,DetailsView,formView,Repeator常用属性,如果要想把一条记录分成两列显示,以上控件哪些可以用,哪些不可以用?如果可用,如何处理?答:DataMember:绑定的表或者视图,DataSourseID:数据源控制的ID,Visible:是否显示该控件.FormView,Repeator可以用,其他的控件不能可用,在ItemTemplate模板里用表格或者用列表来显示.3、写出下列的含义%%,%#%,答:%%是服务器端代码块%#%表示绑定的数据源4、请解释Page.IsPostBack,Response.Write,Response.End,DBNull.Value,DataSet,DataTable,DataView,SqlDataReader,stringbuilder,ArrayList?Page.IsPostBack:是否正是被首次加载Response.Write:打印指定的文本Response.End:停止当前的程序并返回结果DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(NULL)时,在.net中的值。DataSet:DataSet是数据在内存中的表示形式,是不依赖与数据库的独立数据集合.DataTable:是一个包含列和行表.DataView:数据视图SqlDataReader:提供一种从SQLServer数据库读取行的只进流的方式。5、stringbuilder:StringBuffer线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。ArrayList:动态加载的数组partial,protected,private,public的含义:答:partial:仅所属类的成员才可以访问protected:可被所属的类或派生自所属类的类型访问public:访问不受限制。6、如何理解死锁的概念?死锁是如何形成的?在应用中应注意什么事项避免死锁?死锁是一种条件,不仅仅是在关系数据库管理系统(RDBMS)中发生,在任何多用户系统中都可以发生的。当两个用户(或会话)具有不同对象的锁,并且每个用户需要另一个对象的锁时,就会出现死锁。每个用户都等待另一个用户释放他的锁。当两个连接陷入死锁时,Microsoft?SQLServer?会进行检测。其中一个连接被选作死锁牺牲品。该连接的事务回滚,同时应用程序收到错误。阻塞任何基于锁的并发系统都不可避免地具有可能在某些情况下发生阻塞的特征。当一个连接控制了一个锁,而另一个连接需要冲突的锁类型时,将发生阻塞。其结果是强制第二个连接等待,或在第一个连接上阻塞。其实所有的死锁最深层的原因就是一个——资源竞争。表现一:一个用户A访问表A(锁住了表A),然后又访问表B,另一个用户B访问表B(锁住了表B),然后企图访问表A。这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了。同样用户B要等用户A释放表A才能继续这就死锁了。解决方法:这种死锁是由于你的程序的BUG产生的,除了调整你的程序的逻辑别无他法。仔细分析你程序的逻辑:1:尽量避免同时锁定两个资源;2:必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源。表现二:用户A读一条纪录,然后修改该条纪录,这是用户B修改该条纪录,这里用户A的事务里锁的性质由共享锁企图上升到独占锁(forupdate),而用户B里的独占锁由于A有共享锁存在所以必须等A释放掉共享锁,而A由于B的独占锁而无法上升的独占锁也就不可能释放共享锁,于是出现了死锁。这种死锁比较隐蔽,但其实在稍大点的项目中经常发生。解决方法:让用户A的事务(即先读后写类型的操作),在select时就是用Updatelock7、什么是事务?使用事务的语句有哪些?答:事务是一种机制,是一个操作序列,它包括了一组数据库操作命令,并且所有的命令作为一个整体向系统提交或者撤消操作请求,要么全部,要么全部不执行.begintransactioncommittransactionrollbacktransaction8、在update触发器中如何使用修改前,后的数据?ifupdate(字段1)begin...end9、有一职员表,字段有工卡和姓名,写出所有姓名重复的职员信息的SQL语句。答:select*fromtestwherenamein(selectnamefromtestgroupbynamehavingcount(name)1)10、有两张表Table1,Table2,都只有一个字段。Table有数据'1','2','3','4',Table2有'1','3'.写出一句通用Sql语句将表Table1的记录同步到Table2中!。答:inserttable2(字段)select'2'unionselect'4';11、请谈谈你对OOP的理解。面向对象编程(ObjectOrientedProgramming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP主要有以下的概念和组件:组件-数据和功能一起在运行着的计算机程序中形成的单元,组件在OOP计算机程序中是模块和结构化的基础。抽象性-程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。封装-也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。多态性-组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。继承性-允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。12、简述private、protected、public、internal修饰符的访问权限。private:私有成员,在类的内部才可以访问。protected:保护成员,该类内部和继承类中可以访问。public:公共成员,完全公开,没有访问限制。internal:在同一命名空间内可以访问。13、写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。)selectrow,namefrom(selectrow_number()over(orderbyid)asrow,namefromA)asAWithRowNumberwhererow=31androw=4014、列举ASP.NET页面之间传递值的几种方式。1.使用QueryString,如....?id=1;response.Redirect(),这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象2.使用Session变量,缺点是在Session变量存储过多的数据会消耗比较多的服务器资源,最好的解决办法是用完session,用remove删除3.使用Server.Transfer,将要传递的数据使用get方法封装,在另一个页面以对象属性的方式来存取显露的值,在目标页面实例源页面,WebForm1wf1;wf1=(WebForm1)Context.Handler;Label1.Text=wf1.Name;Label2.Text=wf1.EMail;2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。session(viewstate)简单,但易丢失application全局cookie简单,但可能不支持,可能被伪造inputttype=hidden简单,可能被伪造url参数简单,显示于地址栏,长度有限数据库稳定,安全,但性能相对弱15、override与重载的区别Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数,重写是子类的方法覆盖父类的方法,要求方法名和参数都相同,重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数16、.net的错误处理机制是什么.net错误处理机制采用try-catch-finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。17、C#中接口和类的异同接口和类都是类,不同的是,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。18、DataReader和DataSet的异同DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...19、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?Using引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New实例化一个对像,或修饰一个方法,表此方法完全重写此方法20、谈谈类和结构的区别?最大区别一个是引用类型,一个是值类型默认成员访问为public是另外一个区别21、在.net(C#orvb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。this(C#)Me(vb.net).22、在.net(C#orvb.net)中如何用户自定义消息,并在窗体中处理这些消息。在form中重载DefWndProc函数来处理消息:protectedoverridevoidDefWndProc(refSystem.WinForms.Messagem){switch(m.msg){caseWM_Lbutton:///string与MFC中的CString的Format函数的使用方法有所不同stringmessage=string.Format(收到消息!参数为:{0},{1},m.wParam,m.lParam);MessageBox.Show(message);///显示一个消息框break;caseUSER:处理的代码default:base.DefWndProc(refm);///调用基类函数处理非自定义消息。break;}}23、在.net(C#orvb.net)如何启动另一个程序。process24、在.net(C#orvb.net)中如何取消一个窗体的关闭priv

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功