1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策
4:C#中的委托是什么?事件是不是一种委托?答 委托本质上是一种“方法接口”,它相当于C/C++中的函数指针,当然它比函数指针安全,在C#中通常用于事件处理。与JAVA相比,可以避免使用大量小粒度的匿名类。事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托(一种“方法接口”)。实际上,如果你处理自定义的事件,就像JAVA中那样用接口实现也是可以的,不过这么做在C#一般没有什么特别的好处。
5:new有几种用法第一种:new Class();第二种:覆盖方法public new XXXX(){}第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
7:DataGrid、DataSource可以连接什么数据源答 [ DataSet、DataTable、DataView] DataSet、DataTable、DataView、IList
8:概述反射和序列化答 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后,可以调用类型的方法或访问其字段和属性答 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
9:概述OR/Mapping 的原理答 利用反射,配置 将类于数据库表映射
10:类成员有( )种可访问形式答 可访问性:public、protected 、private、internal
11:用sealed修饰的类有什么特点答 sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。密封类不能同时为抽象类。sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
13:C#中,string str = null 与 string str =””,请尽量用文字说明区别。(要点:说明详细的内存空间分配)答 string str = null 是不分配内存空间,而string str = “” 给它分配长度为空字符串的内存空间。
14:概述.NET里对 Remoting 和 Webservices 两项技术的理解和实际中的应用答 远程逻辑调用,Remoing接口只能用在.NET中
16:概述三层结构体系答 表示层 数据层 业务层
17:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?答:一般为3层数据访问层,业务层,表示层。数据访问层对数据库进行增删查改。业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。表示层为了与用户交互例如用户添加表单优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。缺点: 增加成本。
19:什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?答 应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小受管制的代码:unsafe:非托管代码。不经过CLR运行。强类型系统 RTTI:类型识别系统。装箱就是把值类型到引用类型的转换拆箱就是引用类型到值类型的转换重载 方法名相同 不用个数的参数或者指定不同参数类型CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。class box{int aa(object i) {}object bb(){}}int bb=5new box().aa(bb) //装箱int conver=(int)new box().zz(); //拆箱//重载public void aaa(int rad){ }public void aaa(int len,int bre ){ }public void aaa(sting str){ }
20:列举一下你所了解的XML技术及其应用答:XML可以统一数据格式,XML可是好东西,保存配置,站与站之间的交流,WebServices都要用它.
22:如何理解委托?答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.msdn2005中是这样解释的:委托具有以下特点:委托类似于 C++ 函数指针,但它是类型安全的。委托允许将方法作为参数进行传递。委托可用于定义回调方法委托可以链接在一起;例如,可以对一个事件调用多个方法。方法不需要与委托签名精确匹配。
23:C#中的委托是什么?事件是不是一种委托?答 委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。是,是一种特殊的委托
24:UDP连接和TCP连接的异同。答:UDP前者只管传,不管数据到不到,无须建立连接.TCP后者保证传输的数据准确,须要连结。
27:什么是Code-Behind技术。答:代码分离,这是个明智的东西,或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的。
29解释一下UDDI、WSDL的意义及其作用答:UDDI 用于注册各个服务提供商提供的服务 以便可以共享它们 它还有助于WEB服务客户或web用户查找该Web服务WSDL 是web服务描述语言(web Services Description Language)
30:什么是SOAP,有哪些应用。答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看
31:如何理解.NET中的垃圾回收机制。答 GC?对象创建了总要清除啊,不然内存哪够用?
32:常用的调用Webservice方法有哪些?答 HTTP-get Http-post Http-soap
33 概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。答 远程逻辑调用,remoing接口只能用在.net中
34: 简述 private、 protected、 public、 internal 修饰符的访问权限。答 private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一命名空间内可以访问。
37:override与重载的区别答 :override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要Override 是进行基类中函数的重写。为了适应需要。
40:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?答:不是。可以用任意类型。
50:简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。答:WS主要是可利用HTTP穿透防火墙。Remoting可以利用TCP/IP,二进制传送提高效率
52:请说明.net中的错误处理机制,并举例答 异常是从 Exception 类类继承的对象。异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止。try{ //执行代码,不确定是否会出错 }catch{ //出错处理 }finally{ //无论怎样,都要执行 }
53:请说出强名的含义答 垃圾回收的原理是根据是否空引用,和该数据类型占用内存来判断该收回多少内存.强类型说白就是必须要有个数据类型.
54:请列出c#中几种循环的方法,并指出他们的不同答 FOR WHILE foreach do while
55:请指出.net中所有类型的基类答 object
56:请指出GAC的含义答 全局访问缓存
57:SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值答 INSERT INTO jobs (job_desc,min_lvl,max_lvl)VALUES (‘Accountant’,12,125)
58:什么是WEB控件?使用WEB控件有那些优势?答 web控件就是可以在服务器执行的控件,优势在于可以回传数据,带有事件驱动
60: 请谈谈对正则表达式的看法?答 主要用在字符串的匹配上面,与具体的语言环境无关。
62: WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。答 通过实现IPostBack这个接口来执行事件。自动回传就是AutoPostBack,使用自动回传可以监视客户端变化情况并将这种改变返回到服务器端
65: 什么是viewstate,能否禁用?是否所用控件都可以禁用?答 可以全部禁用,viewstate就是hidden input,只不过加上了微软的编码方式记录控件的状态
66: 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决答 可能就是事件没有关联,或者根本就没有写读取代码。解决 检查代码, 设断点调试
67:请解释一个WEB页面中代码执行次序。答 参看.cs 知道最先执行OnInit(); 然后到Page_Load,最后到具体的执行事件。
68:请解释什么是上下文对象,在什么情况下要使用上下文对象答 HttpContext, 在类中调用的时候需要用到HttpContext
69:请解释转发与跳转的区别?答 Transfer 是转发 包括HttpHandler对象Redirect 就是跳转
71:请解释一下.NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你自己的项目中采用那种方式进行。答 这个传递方式不定,很多都是传递DataSet, XML也可以
73:如果需要在DataGrid控件中的某一列中添加下拉列表框并绑定数据怎么解决?答 使用模板列来添加DropDwonList绑定数据使用代码前置的方式
76:请解释接口的显式实现有什么意义?答 规定强制执行,保持一致
77: 什么情况用HTML控件,什么情况用Web控件,并比较两者差别答 客户端表现用HTML控件,如果想和Server端交互,那么加上runat=server,它就成了服务器端控件,但它没有Web控件的很多方法和属性,如果你需要用到,那么还是用Web Controls
78: C#中的接口和类有什么异同。答 接口只能包含抽象方法,不能包含任何方法实现,不能创建接口实例,接口成员没有访问修饰符,接口成员必须是方法属性事件或者索引器不能包含常数字段运算符也不能有静态成员
可访问性的关键字有如下5个:internal:在所属程序集中可以访问。private:私有成员, 在当前类中可以访问。protected:保护成员,在当前类及其子类中可以访问。public:公共成员,完全公开,没有访问限制。internal protected:在所属程序集或当前类的子类中可以访问。(题目中未提及)【扩展】
类的修饰符:abstract,sealed,static,unsafe 4个。abstract:类是抽象的,不能创建类的实例sealed:类是密封的,不能被继承static:类是静态的,只有静态成员,没有非静态成员unsafe:类有非安全的结构,比如指针
发送页面代码:
if (Session["username"] != null){strUserName = Session["username"].ToString();}4.使用Application变量
发送页面代码:
3.重写、重载和隐藏三个概念的区别。答:重写(Override)指用Override关键字重新实现基类中的虚方法,在运行过程中,无论通过哪个类型的引用,真正对象类型的方法将被调用。重载(Overload)指多个方法共享一个名字并且拥有相同的返回值,但是拥有不同的参数。隐藏(new)指用new关键字重新实现基类中的方法,在运行的过程中通过引用的类型判断应该调用哪个类型的方法。【扩展】重写实现的是运行时多态,重载实现的是编译时多态。override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要Override 是进行基类中函数的重写。为了适应需要。
16.什么是受管制的代码?答:unsafe:非托管代码。不经过CLR运行。
17.什么是强类型系统?答:RTTI:类型识别系统。
23..NET Remoting 的工作原理是什么?答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
25.请详述在.NET中类(class)与结构(struct)的异同?答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
32.给定以下XML文件,完成算法流程图。
< DriverC >
33.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。答:解1: 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)
35.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。答:IEnumerable 、 GetEnumerator。
41.构造器Constructor是否可被Override?答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
55.如何处理几十万条并发数据?答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.
57.进程和线程的区别?答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
58.堆和栈的区别?答:栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。
59.成员变量和成员函数前加static的作用?答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。
62.请说明在.NET中常用的几种页面间传递参数的方法,并说出他们的优缺点。答:session(viewstate) 简单,但易丢失application 全局cookie 简单,但可能不支持,可能被伪造input ttype=”hidden” 简单,可能被伪造url参数 简单,显示于地址栏,长度有限数据库 稳定,安全,但性能相对弱
63.请指出GAC的含义?答:全局程序集缓存。
64.向服务器发送请求有几种方式?答:get,post。get一般为链接方式,post一般为按钮方式。
66.软件开发过程一般有几个阶段?每个阶段的作用?答:需求分析,架构设计,代码编写,QA,部署
67.在C#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。答:using 引入名称空间或者使用非托管资源new 新建实例或者隐藏父类方法
70.什么叫做SQL注入,如何防止?请举例说明。答:利用sql关键字对网站进行攻击。过滤关键字’等
71.什么是反射?答:动态获取程序集信息
72.用Singleton如何写设计模式答:static属性里面new ,构造函数private
73.什么是Application Pool?答:Web应用,类似Thread Pool,提高并发性能。
74.什么是虚函数?什么是抽象函数?答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。
75.什么是XML?答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。
76.什么是Web Service?UDDI?答:Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
78.列举一下你所了解的XML技术及其应用答:XML用于配置,用于保存静态数据类型.接触XML最多的是Web Services..和config
或者
之类的结束 标记。在XML中,绝对不能省略掉结束标记。3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。
8. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?答案:62移动成2的6次方
109.写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。答:
113.,&和&&的区别。&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).
118.和 有什么区别?答:表示绑定的数据源是服务器端代码块
1)以上代码可以正确使用连接池吗?答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。
2)以上代码所使用的异常处理方法,是否所有在Test方法内的异常都可以被捕捉并显示出来?答:只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕捉。)
127.什么是WSE?目前最新的版本是多少?答:WSE (Web Service Extension) 包来提供最新的Web服务安全保证,目前最新版本2.0。
2. 不定项选择:(1) 以下叙述正确的是: B CA. 接口中可以有虚方法。B. 一个类可以实现多个接口。 C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。(2) 从数据库读取记录,你可能用到的方法有:B C DA. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader
3.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD )A.使用ref参数,传递到ref参数的参数必须最先初始化。B.使用out参数,传递到out参数的参数必须最先初始化。C.使用ref参数,必须将参数作为ref参数显式传递到方法。D.使用out参数,必须将参数作为out参数显式传递到方法。
1.在对SQL Server 数据库操作时应选用(A)。a)SQL Server .NET Framework 数据提供程序;b)OLE DB .NET Framework 数据提供程序;c)ODBC .NET Framework 数据提供程序;d)Oracle .NET Framework数据提供程序;
2.下列选项中,(C)是引用类型。a)enum类型 b)struct类型 c)string类型 d)int类型
4.以下描述错误的是(A)a)在C++中支持抽象类而在C#中不支持抽象类。b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有(A)a)值类型和调用类型; b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型;
6.下列描述错误的是(D)a)类不可以多重继承而接口可以;b)抽象类自身可以定义成员而接口不可以;c)抽象类和接口都不能被实例化;d)一个类可以有多个基类和多个基接口;
7.在DOM中,装载一个XML文档的方法(D)a)save方法 b)load方法 c)loadXML方法 d)send方法
8.下列关于构造函数的描述正确的是(C)a)构造函数可以声明返回类型。b)构造函数不可以用private修饰c)构造函数必须与类名相同d)构造函数不能带参数
9.以下是一些C#中的枚举型的定义,其中错误的用法有()a)public enum var1{ Mike = 100, Nike = 102, Jike }b)public enum var1{ Mike = 100, Nike, Jike }c)public enum var1{ Mike=-1 , Nike, Jike }d)public enum var1{ Mike , Nike , Jike }
11.接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的成员变量。a)方法、属性、索引器和事件;b)方法、属性信息、属性;c)索引器和字段;d)事件和字段;
19.如果要将窗体设置为透明的,则( B)a)要将FormBoderStyle属性设置为None; b)要将Opacity属性设置为小于100%得值;c)要将locked 属性设置为True; d)要将 Enabled属性设置为True;
20.下列关于C#中索引器理解正确的是(B/C )a)索引器的参数必须是两个或两个以上 b)索引器的参数类型必须是整数型c)索引器没有名字 d)以上皆非
21.下面描述错误的是( C/D)。a)窗体也是控件; b)窗体也是类; c)控件是从窗体继承来的; d)窗体的父类是控件类;
23.要创建多文档应用程序,需要将窗体的(D )属性设为true。a)DrawGrid; b)ShowInTaskbar; c)Enabled; d)IsMdiContainer;
25.下面关于XML的描述错误的是(D)。a)XML提供一种描述结构化数据的方法;b)XML 是一种简单、与平台无关并被广泛采用的标准;c)XML文档可承载各种信息;d)XML只是为了生成结构化文档;
1.装箱、拆箱操作发生在: ( C )A.类与对象之间 B.对象与对象之间C.引用类型与值类型之间 D.引用类型与引用类型之间
二、C# 部分*13.以下哪些可以作为接口成员?(多选) ( ABDE )A.方法B.属性C.字段D.事件E.索引器F.构造函数G.析构函数14.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD )A.使用ref参数,传递到ref参数的参数必须最先初始化。B.使用out参数,传递到out参数的参数必须最先初始化。C.使用ref参数,必须将参数作为ref参数显式传递到方法。D.使用out参数,必须将参数作为out参数显式传递到方法。
18.请叙述属性与索引器的区别。属性 索引器通过名称标识。 通过签名标识。通过简单名称或成员访问来访问。 通过元素访问来访问。可以为静态成员或实例成员。 必须为实例成员。属性的 get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参表。属性的 set 访问器包含隐式 value 参数。 除了 value 参数外,索引器的 set 访问器还具有与索引器相同的形参表。
19.请叙述const与readonly的区别。每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关键字,参数列必须为空。为了不违背编码规则,通常把static数据成员声明为private,然后通过statci property提供读写访问。const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的构造函数里面。
B.
C.
D.
E.
22.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( C? )A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。D. 重写OnLayout事件,当Grid的Footer行被创建时显示合计数。
24.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( 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”
///应用程序的主入口点。///
///判断程序是否正在运行///
4、DataReader和DataSet的异同DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存…但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作…
6. 私有程序集与共享程序集有什么区别?一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。
7. 请解释进程与线程的区别?进程与程序的区别?一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在*作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用程序分配处理时间的最小单元。
8. CLR与IL分别是什么含义?CLR:公共语言运行时,类似于Java中的JVM,Java虚拟机;在.Net环境下,各种编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与*作系统进行通信,而编程语言如C#.NET将尽量避免直接与*作系统直接通信,加强了程序代码的执行安全性,可以这样看:CLR就是具体的编程语言如:C#.NET与*作系统之间的翻译,同时它为具体的编程语言提供了许多资源:IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
15. 什么是ViewState,能否禁用?是否所用控件都可以禁用?ViewState是保存状态的一种机制,EnableViewState属性设置为false即可禁用
16. 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断
17. 请解释什么是上下文对象,在什么情况下要使用上下文对象上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对象
18. 请解释转发与跳转的区别?转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面跳转就是指客户端的跳转
4. 简述全局变量和局部变量的区别。全局变量和局部变量的差别:程序上讲是作用域不同,生存期不同,存储上来讲,存储的位置不同,一个存放在静态存储区,另一个存放在动态存储区。
5. 简述传值调用与传址调用的主要区别。传值调用,实参把值传递给参数,在被调函数中形参的值得变化不会影响实参。传址调用,实参把值的地址传给了形参,如果被调函数中形参所指的值发生了变化,实参所指的值夜将变化,因为他们指向的是同一个地址。
8. HtmlGenericControl控件与那些Html标记对应?HtmlGenericControl控件与那些Html标记对应?可以到msdn上察看。这就不累赘了。
9. 控件LinkButton与Button的主要区别在哪里?LinkButton和Button外观上不同,linkbutton上的文本显示为超链接的样子,用法和Button相同。
10. 控件ImageButton与Image有哪些不同?ImageButton上显示的是图片,用法和Button也大同小异。
* // 一般用户可以有多个Indentity, 即多种身份来访问不同资源 –pending* 每个AppDomain里面都有CallContext,CallContext里面包含Principal。线程在启动的时候也会带上
Authorization 授权 判断用户是否有权操作,比如登录的用户有没有权限访问资源或者数据库Authentication 认证 用户的Identity. 主要有:HTTP基础认证、证书、Kerberos、Passport、NTLM、Forms-based、Digest
这两个东西最好从读音上区别,以前一直糊涂。一般应用先authenticate用户, 判断用户是否能链接到系统。然后authorization, 判断对某个功能是否有权限。
authorization一般有两种:ACL/ROLESACL:Acess Control Lists. 判断用户是否在有权限的用户组内。缺点:不能定义动态条件。Role based: 用户加入到某个role以后,自动获得了很多特定的权限。先判断请求者的Identity, 然后看