Net面试知识点总结(精选五篇)

时间:2019-05-12 07:06:36下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Net面试知识点总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Net面试知识点总结》。

第一篇:Net面试知识点总结

JQuery

1、JQ概述

Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。

2、JQ优点

jQuery实现脚本与页面的分离 最少的代码做最多的事情 性能

它是一个“标准” 插件

节省开发者学习时间

让JavaScript编程变得有趣

3、JQ缺点

3.1不能向后兼容。

每一个新版本不能兼容早期的版本。举例来说,有些新版本不再支持某些selector,新版jQuery却没有保留对它们的支持,而只是简单的将其移除。这可能会影响到开发者已经编写好的代码或插件。

3.2插件兼容性。

与上一点类似,当新版jQuery推出后,如果开发者想升级的话,要看插件作者是否支持。通常情况下,在最新版jQuery版本下,现有插件可能无法正常使用。开发者使用的插件越多,这种情况发生的几率也越高。我有一次为了升级到jQuery 1.3,不得不自己动手修改了一个第三方插件。

3.3在同一页面上使用多个插件时,很容易碰到冲突现象,尤其是这些插件依赖相同事件或selector时最为明显。这虽然不是jQuery自身的问题,但却又确实是一个难于调试和解决的问题。

3.4jQuery的稳定性。

它没有让我的浏览器崩溃,我这儿指的是其版本发布策略。jQuery 1.3版发布后仅过数天,就发布了一个漏洞修正版1.3.1。他们还移除了对某些功能的支持,可能会影响许多代码的正常运行。我希望类似修改不要再出现。

3.5在大型框架中,jQuery核心代码库对动画和特效的支持相对较差。但是实际上这不是一个问题。目前在这方面有一个单独的jQuery UI项目和众多插件来弥补此点。

4、JQ同类技术

JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。

JQ轻量级 强大的选择器

可靠的事件处理机制 完善的Ajax 不污染顶级变量 出色的浏览器兼容性 链式操作方式

隐式迭代

行为层与结构层的分离 丰富的插件支持 完善的文档 开源

5、JQ应用场景

Ajax JQuery插件 操作Dom Ajax

1、Ajax概述

AJAX的概念中最重要而最易被忽视的是它也是一种JavaScript编程语言。

AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

Ajax 的核心是 JavaScript 对象 XmlHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest 使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。

2、Ajax优点

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。

Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。

3、Ajax缺点

它可能破坏浏览器后退按钮的正常行为。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,当中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)

用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是让人头痛的事; Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的;解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等;

Ajax对流媒体的支持没有FLASH、Java Applet好;

4、Ajax同类技术

5、Ajax应用场景

Web标准(standards-based presentation)XHTML+CSS的表示; 使用DOM(Document Object Model)进行动态显示及交互; 使用 XML 和XSLT进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索; 使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文,原文题目(Ajax: A New Approach to Web Applications)。

MVC

1、MVC概述

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

2、MVC优点 耦合性低

视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,或者改变基于RDBMS数据源到LDAP,只需改变模型即可。一旦正确的实现了模型,不管数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件。[11]

重用性高

随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。[11]

生命周期成本低

MVC使开发和维护用户接口的技术含量降低。部署快

使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

可维护性高

分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。有利软件工程化管理

由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。

3、MVC缺点

没有明确的定义

完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。不适合小型,中等规模的应用程序

花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。增加系统结构和实现的复杂性

对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。视图与控制器间的过于紧密的连接

视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

视图对模型数据的低效率访问

依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

一般高级的界面工具或构造器不支持模式

改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,会造成MVC使用的困难。

4、MVC同类技术

5、MVC应用场景

生命周期成本低 耦合性低 可维护性高

ASP.NET

1、ASP.NET概述

ASP.NET[1] 是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。指 Active Server Pages(动态服务器页面),运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序。

2、ASP.NET优点

跨平台性

因为ASP.NET是基于通用语言的编译运行的程序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP.NET构建的应用程序可以运行在几乎全部的平台上。其中大致分为以微软.NET Framework为基础使用IIS做为Web 服务器承载的微软体系,以及使用Mono为基础框架运行在Windows或Linux上的开源体系。

简单易学

asp.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例如asp.net页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面。

代码和内容分离使代码更清晰

提高可部署性、可伸缩性、安全性以及可靠性

为不同的浏览器和设备提供更好的支持

3、ASP.NET缺点

ASP只能使用脚本语言属于解释性语言,主要是javascript或VBScript。而解释性语言,而解释性语言缺乏强类型和编译环境。这些将不可避免地导致性能和伸缩性问题。

ASP代码杂乱、功能有限,浏览器兼容以及浏览设备的兼容性差,而ASP.NET能够很好的解决。

4、ASP.NET同类技术

5、ASP.NET应用场景

Linq

1、Linq概述

LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

LINQ 提供了一条更常规的途径即给.Net Framework添加一些可以应用于所有信息源(all sources of information)的具有多种用途(general-purpose)的语法查询特性(query facilities),这是比向开发语言和运行时(runtime)添加一些关系数据(relational)特性或者类似 XML 特性(XML-specific)更好的方式。这些语法特性就叫做.NET Language Integrated Query(LINQ)。

2、Linq优点

1、无需复杂学习过程即可上手

2、编写更少代码即可创建完整应用。

3、更快开发错误更少的应用程序。

4、无需求助奇怪的编程技巧就可合并数据源。

5、让新开发者开发效率更高。

6、任何对象或数据源都可以定制实现Linq适配器,为数据交互带来真正方便。

7、LinQ则以一种统一的方式操作各种数据源,减少数据访问的复杂性。

3、Linq缺点

4、Linq同类技术

5、Linq应用场景

1.LINQ的读法:(1)lin k(2)lin q 2.LINQ的关键词:from, select, in, where, group by, orderby, „ 3.LINQ的写法:

1)from 临时变量 in 实现IEnumerable接口的对象 where条件表达式 [orderby条件] [group by 条件] select 临时变量中被查询的值

2)实现IEnumerable接口的对象.LINQ方法名(lambda表达式)。如: string input = “hellow world”;int count = input.Count(w=>w == 'o');//查询字母o出现的次数

能够使用LINQ的对象需要实现IEnumerable接口。并且LINQ的查询表达式是在最近一次创建对象时才被编译的。

4.LINQ的全称:Language-Integrated Query 5.命名空间:System.Linq;Webservice WCF Xml LingToXml Lucene.net MVVM 反射 多线程 Entityframework Json 序列化、反序列化 设计模式

Memcached

1、概述

2、优点

memcached把所有数据都保存在内存中,这样保存和读取的速度非常快

3、缺点

memcached属于这种类型。所谓临时性就是 “数据有可能丢失”的意思

但是当memcached停止的时候,数据就不存在了。由于数据保存在内存中,所以无法操作超出内存容量的数据(旧数据会丢失)。

 在内存中保存数据

 可以进行非常快速的保存和读取处理  数据有可能丢失

4、同类技术

5、应用场景

第二篇:最新NET面试问题整理

NET面试题

1. ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释

ASP.NET身份验证模式包括Windows、Forms(窗体)、Passport(护照)和None(无)。  Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,ASP.NET依赖于IIS对用户进行验证,并创建一个Windows访问令牌来表示已通过验证的标识。IIS提供以下几种身份验证机制:

Passport身份验证。使用这种身份验证模式时,ASP.NET使用Microsoft Passport的集中式身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。由于访问新的受保护资源或站点时不再需要登录。ASP.NET为Microsoft Passport软件开发包(SDK)所提供的功能提供了一个方便的包装(Wrapper)。此SDK必须安装在WEB服务器上。 Form窗体身份验证—常用。这种验证方式使用客户端重定向功能,将未通过身份验证的用户转发到特定的登录窗体,要求用户输入其凭据信息(通常是用户名和密码)。这些凭据信息被验证后,系统生成一个身份验证票证(ticket)并将其返回客户端。身份验证票证可在用户的会话期间维护用户的身份标识信息,以及用户所属的角色列表(可选)。

2. 什么是WEB控件?使用WEB控件有那些优势?

Web 服务器控件定义为抽象控件,是使用于web窗体页并运行于服务器的控件,包括传统的窗体控件,例如按钮、文本框和表等复杂控件,还包括提供在网格中显示数据、选择日期等常用窗体功能的控件。

可在服务器上使用熟悉的面向对象技术对其进行编程的对象模型。每个服务器控件都公开一些属性,这些属性使您得以在服务器代码中通过编程操作该控件的 HTML 属性。

提供一组事件,您可以为其编写事件处理程序,方法与在基于客户端的窗体中大致相同,所不同的是事件处理是在服务器代码在客户端脚本中处理事件的能力。

自动维护控件状态。在窗体到服务器往返期间,用户在 HTML 服务器控件中输入的值将在页发送回浏览器时自动维护。与验证控件进行交互,便于您验证用户是否在控件输入了适当的信息。数据绑定到一个或多个控件属性。

如果 Web 窗体页显示在支持层叠样式表的浏览器中,则支持 HTML 4.0 样式。

直接可用的自定义属性。您可以将任何需要的属性添加到 HTML 服务器控件,页框架将读取并呈现它们而不更改其任何功能。Web 服务器控件还提供以下功能:

 功能丰富的对象模型,该模型具有类型安全编程功能。

 自动浏览器检测。控件可以检测浏览器的功能,并为基本型和丰富型(HTML 4.0)浏览器创建适当的输出。 对于某些控件,可以使用模板来自定义控件的外观。

 对于某些控件,可以指定控件的事件是立即发送到服务器,还是先缓存然后在提交窗体时引发。 可将事件从嵌套控件(例如表中的按钮)传递到容器控件。

3. 请解释ASP。NET中以什么方式进行数据验证?

.net中提供了几个数据验证控件,可以在服务器端或者客户端进行验证。

4. 请谈谈对正则表达式的看法?

正则表达式:Regular Express(也称为“regex”或“regexp”),是一种用来描述文本模式的特殊语法。

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具

5. ASP.NET中共有几种类型的控件?各有什么区别?

Html控件――传统的html标记+runat=”server”,可在服务器端访问,功能没有Web控件强大 Web控件――服务器端控件,可以回传数据,事件驱动

用户控件――自定义、可重用的控件,和WebForm很相似,以WebForm为容器运行

自定义控件――自定义、可重用的组件,从WebControl继承,在服务器端执行 中完成的。None。使用这种身份验证模式,表示你不希望对用户进行验证,或是采用自定义的身份验证协议。

这将允许您向控件添加浏览器特定的属性。6. WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。

通过实现IPostBack这个接口来执行事件。自动回传就是AutoPostBack,使用自动回传可以监视客户端变化情况并将这种改变返回到服务器端

7. WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?

能,追根溯源,服务器端控件在html中表现形式还是html标记,所以可以执行客户端事件 例如:控件.Attributes[“客户端事件”]=“客户端脚本”;

8. ASP。NET与ASP相比有什么优势?

1.开发语言不同

ASP仅局限于使用non-type脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。

ASP.NET允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NET Framework。2.运行机制不同

ASP是解释运行的编程框架,所以执行效率加较低。

ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。3.开发方式

ASP把界面设计和程序设计混在一起,维护和重用困难。

ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。

9. 请解释web.config文件中的重要节点

connectionStrings:配置连接字符串,在程序中读取(还可直接提供给其他节点使用,如缓存依赖节点)

AppSettings:可以提供用户自己配置参数,然后在程序中读取

customErrors:配置程序的错误处理

authentication和authorization:配置程序的安全验证和授权 trace:配置程序的跟踪

globalization:配置程序的全球化,比如:语言 pages:配置程序的页设置

10. 请解释ASP。NET中的Web页面与其隐藏类之间的关系?

11. 什么是ViewState,能否禁用?是否所用控件都可以禁用?

Web页面是没有状态的,ViewState(视图状态)可用来保存Web页面在客户端和服务器端往返过程的状态

12. 当发现不能读取页面上的输入的数据时苏州人才网 www.xiexiebang.com成的,其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。您可以确保名称的全局唯一性。

26. 请列出c#中几种循环的方法,并指出他们的不同 1)do: 先循环后判断循环条件

do { // 循环体 }while(循环条件);2)while:根据条件判断是否循环

While(循环条件){ } 3)for:可以指定循环次数,递增量等,功能强大

for(初始值;条件;递增){ } 4)foreach:遍历集合,效率最好

foreach(类型 变量 in 集合){ } 循环体 循环体 循环体

b 对上面生成的数组排序,需要支持升序、降序两种顺序 int[] iArray= new int[100];Random random= new Random();ArrayList arraylist= new ArrayList(100);for(int i = 0;i < 100;i++){ } for(int i = 0;i < 100;i++){

} Array.Sort(iArray);//排序 Array.Reverse(iArray);//反序 int iKey= random.Next(0,99-i);IArray[i] = Convert.ToInt32(arraylist[iKey]);arraylist.RemoveAt(iKey);arraylist.Add(i);

27. 请指出.net中所有类型的基类

Object

28. 请指出GAC的含义

全局程序集缓存(global assembly cache, GAC)。它解决了几个程序共享某一个程序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。

29. params关键字的作用

params 关键字可以指定在参数数目可变处采用苏州除皱 www.xiexiebang.com参数的方法参数。

在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

30. 请解释ASP.NET中以什么方式进行数据验证?

可以使用验证控件进行客户端和服务器端验证

也可以使用传统方式:用客户端脚本在客户端验证,用服务器语言在服务器端验证

31. ArrayList,Array,string[]三者的区别?

32. 请说明.net中的错误处理机制,并举例

异常是从 Exception 类继承的对象,异常从发生问题的代码区域引发,然后沿堆栈向上传递,直到应用程序处理它或程序终止 try { //执行代码 } catch { //出错处理 } finally { //无论怎样,都要执行 }

33. 什么叫应用程序域?

应用程序域提供安全而通用的处理单元,公共语言运行库可使用它来提供应用程序之间的隔离。您可以在具有同等隔离级别(存在于单独的进程中)的单个进程中运行几个应用程序域,而不会造成进程间调用或进程间切换等方面的额外开销。在一个进程内运行多个应用程序的能力显著增强了服务器的可伸缩性。

34. 常用的调用webservice方法有哪些

1)使用WSDL.exe命令行工具。

2)使用VS.NET中的Add Web Reference菜单选项

35. 什么是ASP.net中的用户控件

用户控件,其实就是网页的一部分,包括 ascx与.cs文件前台标苏州祛斑 www.xiexiebang.command:命令对象 传递 T-sql语句或者存储过程,以执行对数据库的查询与操作。DataAdpater:适配器对象 管理 Command对像。主要用于查询或更新数据。DataReader:数据读取器对象 快速、以向前、不断开连接的情况下读取数据。

39. 如何理解委托?

40. C#中的接口和类有什么异同。

接口里只能有 方法、属性、索引器声明,不能有任何实现。

其方法的实现,必须由类来完成。其作用是广泛接收实现过它的类的实例,以实现子类的灵活替换。

类是对一类事物的描述。有属性,有方法,有成员。方法可以有抽像方法,虚方法。抽像方法也是只有声明,没有实现,必段由继承它的子类来重写。虚方法是实现了的方法,只是,在子类,根据需要可重写,也可以不重写。

41. UDP连接和TCP连接的异同。TCP协议是面向连接的,每个数据包的传输过程是:先建立链路、数据传输、然后清除链路。数据包不包含目的地址。受端和发端不但顺序一致,而且内容相同。它的可靠性高,UDP协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丢失、差错和失序等情况,通过请求重发来解决。它的效率比较高。

42. 进程和线程的区别?

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源

43. 什么是Code-Behind技术。

就是代码隐藏,在ASP.NET中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。比如分工,美工和编程的可以个干各的,不银杏树 www.xiexiebang.command com=new SqlCommand(“Select * from users where username='”+t_name.text+“' and pwd='”+t_pwd.text+“'”);object obj=com.ExcuteScale();if(obj!=null){ //通过验证 } 这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入1' and 1='1 就可以进入系统了。

63. 描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

可以用任意类型。格式如下: 修饰符 类型 this [类型 变量] {

}

64. 构造器Constructor是否可被override? 构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading

String类是final类故不可以继承

66. DataReader与Dataset有什么区别?

一个是只能向前的只读游标,一个是内存中的表。

67. 什么是虚函数?什么是抽像函数?

虚函数:可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写

68. 在.Net中所有可序列化的类都被标记为? [serializable] 65. 是否可以继承String类? get{};Set{};a=a+b;b=a-b;a=a-b 抽象类能有具体实现,而接口只定义行为规范,不能有具体实现。一个类只能继承一个父类,但能实现多个接口 不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值null Public class 类名{}

69. <%# %> 和 <% %> 有什么区别?

<%# %>表示绑定的数据源,<% %>是服务器端代码块

70. 能用foreach遍历访问的对象需要实现什么接口或声明什么方法的类型

71. 叙述Global类中事件发生的顺序

72. out和ref的区别

都是引用传递参数,区别

1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化

2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

73. 三层是指什么?为什么要有三层?

三层指的是:表示层、业务逻辑层和数据访问层。表示层:用户界面,和用户进行交互

业务逻辑层:业务逻辑主要是自定义一些业务规则,完成一些功能。数据访问层:和数据库打交道,进行数据的查询和操作

三层架构主要体现出对程序分而治之的思想,数据访问层只负责提供原始数据,并不需要业务逻辑是什么;业务逻辑层调用数据访问层提供的方法,实现一些业务逻辑,本身不需要了解数据访问层的实现;表示层直接调用业务逻辑提供的方法,把数据呈现给用户,同样,它也不需要了解业务逻辑层和数据访问层是怎么实现的。这样的好处就是降低耦合,易于程序的维护和扩展,每一层都可以由不同的团队来开发,便于分工

74. 简单工厂模式有什么作用?

工厂模式,顾名思义作用于对象的实例化(变化点在”对象创建”,封装”对象创建”)

我们一般提供一个接口,让该接口负责创建一系列”相关或者相互依赖的对象”,利用反射(Reflection)技术动态的创建实例,无需指定他们具体的类。

改变配置文件即可方便的控制对象之间的切换

75. 请编程实现一个冒泡排序的算法

int num[10] = {1,3,4,6,2,5,7,9,8,0};for(int i = 0;i<10;i++){ for(int j=i+1;j<=10;j++){

} }

76. 用户输入两个字符串str1,str2,返回字符串str1在str2中的出现索引数,如:str1(aba),str2(2dabab2)返回2,不可以用indexof和substringif(num[i]>num[j]){

} int temp = num[j];num[j] = num[i];num[i] = temp;

第一个用户第一次访问第一个页面时,会执行以下的事件

Application_Start->Application_BeginRequest->Session_Start->Application_EndRequest IEnumerable接口或 GetEnumerator方法 方法;string a = “aba”;string b = “2dabab2”;bool bFind = false;

int index = 0;while((index + a.Length)!= b.Length){ if(b.Substring(index).StartsWith(a)){ bFind = true;// 找到内容

break;} index++;}

if(bFind){ Console.WriteLine(“索引在{0}”, index);} else { Console.WriteLine(“没有包含”);}

77. C#中的三元运算符

78. Sealed修饰符的作用

79. 委托的关键字

80. 你熟悉的开发模式有哪些

81. NET中,为什么不担心内存漏洞 垃圾回收器是用来管理应用程序的内存分配和释放的。在垃圾回收器出现以前,程序员在使用内存时需要向系统申请内存空间。有些语言,例如Visual Basic,可以自动完成向系统申请内存空间的工作。但是在诸如Visual C++的语言中要求程序员在程序代码中申请内存空间。如果程序员在使用了内存之后忘了释放内存,则会引起内存泄漏。但是有了垃圾回收器,程序员就不必关心内存中对象在离开生存期后是否被释放的问题。垃圾回收器全部自动帮你完成。

82. repeater控件的用法

83. Session里有BUG,微软是怎么处理的 Session有丢失的可能性,微软对于Session有三种存放方式: Repeater没有自己的形态,需要开发人员利用模板进行设置。

Repeater支持的5种模板分别为ItemTemplate、AlternatingItemTemplate、Separator Template、HeaderTemplate、FooterTemplate 常用的开发模式有抽象工厂模式、简单工厂模式、工厂方法模式、单例模式、外观模式、代理模式、适配器模式 delegate sealed的中文意思是密封,故名思义,就是由它修饰的类或方法将不能被继承或是重写 表达式 ? 结果1(表达式为true时执行):结果2(表达式为false时执行)InProc:session在服务器中以活动对象方式存储(aspnet_wp.exe)

StateServer: session被序列化并保存在单独的aspnet_state.exe的内存中。StateServer能够运行在另一台服务器上

SQLServer: session被序列化并保存在SQL Server中

84. Datalist、GridView、Repeater 的区别

85. AJAX是怎么实现的。用与不用有什么区别

86. 关于CSS的布局。怎么把一个层隐藏?

87. C#写连接代码调用存储过程 Div.style.display = “none”;AJAX实质上是几种技术的集合,包括:XHTML、CSS、DOM、XML、Javascript、XmlHttpRequest。主要原理是使用XmlHttpRequest进行异步数据提交,实现局部页面无刷新效果,增加用户体验 Repeater和DataList比较相似,都没有自己的形式,需要模板的支持

--Repeater支持ItemTemplate、AlternatingItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate 5种模板--DataList除了以上的5种模板,还支持SelectedItemItemplate和EditItemTemplate模板以及支持RepeatColumns(每行呈现的列GridView有自己的形态,以网格的形式输出内容,功能比Repeater和DataList强 数)和RepeatDirection(呈现方向)SqlConnection conn = new SqlConnection(“„”);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = “存储过程名”;

conn.Open();cmd.ExecuteNonQuery();

88. 简单谈谈从一个项目启动到客户验收我们所要做的工作步骤

89. struct 与class的区别 并举例

1.struct 是值类型,class是对象类型 2.struct 不能被继承,class可以被继承

3.struct 默认的访问权限是public,而class默认的访问权限是private.4.struct不能由程序员申明构造函数,即使是默认(不带参数)的构造函数,同样也不能有析构的处理部分。这是因为Struct的构造函数是由编译器自动生成的。并且Struct的用途是那些描述轻量级的对象,例如Line,Point等,并且效率比较高。

5.struct的new和class的new是不同的。struct的new就是执行一下构造函数创建一个新实例再对所有的字段进行Copy。而class则是在堆上分配一块内存然后再执行构造函数,struct的内存并不是在new的时候分配的,而是在定义的时候分配

90. 把已有的字符串反转,写个方法 public string Reverse(string str){ char[] array = str.ToCharArray();Array.Reverse(array);return new string(array);} 可行性分析、需要分析。概要设计、详细设计、编码、集成测试、部署 91. CSS规范中,每一条样式的结束符是;(分号)还是:(冒号)?样式名与样式值之间的分隔符是:(冒号)还是=(等号)?

92. 我们知道new可以调用构造函数创建一个对象,那么new还有什么别的语法吗?

93. 指出div与span的不同。

Div会换行(block块),span不会换行(inline行内)new还可以隐藏基类成员 每条样式的结束符是分号,样式名与样式值之间是冒号

SQL面试题:

1. 在表A中有数据 ID MO 1 Y 2 N

请用一个SELECT 语句写出,如果MO的值为“Y”,返回“YES”,为N返回“NO” 效果如下: ID MO 1 YES 2 NO

SELECT ID,MO=CASE

END FROM Az

2. 在表A中查询出自动增长列中31到40之间的数据(注意可能不是连续的)

3. 有一个表table中有一个自动增长字段ID,如果在存储过程中向这个表插入一条记录后,如何获得新记录的ID.(写出获取新记录ID的函数即可)CREATE FUNCTION c_currentId()RETURNS int AS BEGIN

END

select tempdb.dbo.c_currentId()as '当前C表中最新的编号'

4. having的用法, 是用来做什么的5. sql中的什么函数可以转换为时间

6. 查询数据放入一张临时表 select convert(datetime,'2000/01/01')select cast('2001/02/02' as datetime)having用来对group by 分组后的记录进行过滤。declare @lastId int select @lastId=max(cid)from c RETURN(@lastId)select * from A where id between 31 and 40 WHEN MO='Y' THEN 'YES' WHEN MO='N' THEN 'NO'

select * into #A from Test select * from #A 7. SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值

INSERT INTO jobs(job_desc,min_lvl,max_lvl)VALUES('Accountant',12,125)SELECT @@IDENTITY AS 'Identity'

逻辑题目

1. 过桥问题

A过桥1分钟,B要2,C要5,D要10,怎么样才能在17分钟过完,每次最多只能过2人,每次都要有人去接送 2. 一个人 一只狗 一只猫 一条鱼 人不到时

狗会咬猫

猫会吃鱼 狗不会咬鱼 一次只能过2个

他们要同时过河~ 用UML的知识画出结构~ 可设置x岸和y岸 事件是

渡河

3. 逻辑题:有1000个苹果,要放在10个箱子里去,要怎么放,不管拿多少个苹果都可以一箱一箱拿

第三篇:.NET面试试题

1、“请做一下自我介绍。”

回答思路:①介绍内容要与个人简历相一致; ②表情自然、面带微笑,表述方式上尽量口语化、但是讲到技术时尽量用专业化语言;③要切中要害(如:基本信息介绍、项目经验介绍/工作经验介绍),不谈无关、无用的内容;④时间要合理、条理要清晰、层次要分明;⑤事先最好以文字的形式写好背熟。)

2、“谈谈你做过的项目情况。”

回答思路:①考察学员所做项目是否真实、思路是否清晰;②列举做过的项目数量,以2—3个为宜,其中主要讲解一个项目。③最好所做的项目和应聘企业主要产品是相同或类似的,技术方向一致。比如应聘企业主要是做金融系统,项目中就可以说××企业的开放基金项目。④必须介绍项目几大要素(名称、客户、时间、技术、业务)

3、“你对加班的看法。”

回答思路:①如果是工作需要,特别是项目进度的要求,是非常乐意加班的;

4、“你对工资的要求是多少?你是否接受××元的工资?”

回答思路:①我遵守公司的人力资源薪酬体系②如果非得要求开工资,1000元左右③我也相信当我为公司做的贡献足够大时,公司也会考虑我的薪水问题。我相信薪水是做出来的,不是谈出来的。

5、“你的优点和缺点是什么?”

谈缺点的回答思路:①不宜说自己没缺点;②不宜把那些明显的优点说成缺点;③不宜说出严重影响所应聘职位的缺点;④不宜说出令人不放心、不舒服的缺点;⑤可以说出一些对于所应聘职位“无关紧要”的缺点,甚至是一些表面上看似“缺点”,从工作的角度看却是优点的“缺点”。

谈优点的常规思路:①优点一定要对公司有帮助的;②优点一定要简明扼要;③对优点要准备好一些案例

6、“谈谈你对公司的了解”

回答思路:考察求职者对招聘公司的重视程度、行业、主要业务、主要领导人、企业规模、企业文化

7、“你的朋友对你是如何评价的?”

回答思路:①回答要是正面的积极的;②回答要符合该公司的企业文化;③举例说明

8、“你为什么选择我们公司?”

回答思路:①建议从行业、企业和岗位这三个角度来回答;

9、“你如何评价过去的公司?”(针对去外地工作的学员)

回答思路:①将公司简单介绍一下②不能上讲以前公司的不好,要比较公平的负责的评价以前的公司

10、“你有什么业余爱好和特长?”

回答思路:①业余爱好能在一定程度上反映应聘者的性格、观念、心态,而特长则更进一步体现了我们的个性特征,这是招聘单位提问的主要原因;②最好不要说自己没有业余爱好,企业并不需要读死书的“书呆子”;③不要说自己有那些庸俗的、令人感觉不好的爱好;④回答的爱好和特长尽量能符合该公司的企业文化跟岗位需求)

11、“谈谈你的家庭情况”

回答思路:①简单地罗列家庭人口;②强调温馨和睦的家庭氛围;③强调家庭成员对自己工作的支持;④强调自己对家庭的责任感。

12、“您觉得在成长的过程中,谁对您的影响最大?为什么?”

回答思路:①不宜说无;②不宜说崇拜自己,自信是不错的特征,但企业不需要自大狂;③不宜说崇拜一个虚幻的、或是不知名的人;④不宜说崇拜一个明显具有负面形象的人;⑤最好说出自己所崇拜的人的哪些品质、哪些思想感染着自己、鼓舞着自己;

13、“谈一谈你的一次失败经历”

回答思路:①不宜说自己没有失败的经历;②不宜把那些明显的成功说成是失败;③不宜说出严重影响所应聘职位的失败经历;④举例并总结经验,得出人生启迪;⑤失败后自己很快振作起来,以更加饱满的热情面对以后的工作。

14、“对这项工作,你有哪些可预见的困难?”

回答思路:①实事求是的分析出这项工作可能会出现的困难;②工作中出现一些困难是正常的,但是自己可以克服这些困难。

15、“如果我录用你,你将怎样开展工作?”

常规思路: ①融入项目团队②尽快的了解项目背景、项目状况③认真的工作,争取尽快完成任务④主要汇报项目进程

16、“你离职的原因是什么?”(针对去外地工作的学员)

回答思路:①我觉得深圳IT是一个技术非常先进的地方,IT气氛很好。重庆的IT不是很发达。②觉得自己还比较年轻,现在也没牵挂,想到这里来长期扎根,希望在深圳能实现自己的理想③本人跟前公司的合同也刚刚结束。

17、“与上级意见不一致时,你将怎么办?”

回答思路:①首先我会仔细听完领导的意见并仔细思考。②我会给上级以必要的解释和沟通,我相信经过充分的沟通后可以达到最终合理化解决问题。

18、“我们为什么要录用你?”

回答思路:①我符合贵公司的招聘条件,凭我目前掌握的技能、高度的责任感和良好的适应能力及学习能力,完全能胜任这份工作。我十分希望能为贵公司服务,如果贵公司给我这个机会,我一定能成为贵公司的栋梁!

19、你是应届毕业生,缺乏经验,如何能胜任这项工作?

回答思路:①首先我们是IT职业学校,在学校里我们已经完成了跨八个行业、多达20多个项目的开发;②在毕业之前,我们在我们学校的软件工厂实习了半年时间。做了几个比较大的项目。③除了在学校开发过这些项目外,我们在业余时间也做过一些个人的项目。所以加起来我们项目经验还是比较多的。④我有较强的责任心、适应能力和学习能力,而且比较勤奋,学校所学及兼职的工作经验使我一定能胜任这个职位。

20、“你希望与什么样的上级共事?”

回答思路:①我觉得和什么样的领导共事,我都能够很好的工作,因为只要努力工作,做出成绩,就肯定会得到认可的。②当然,如果有一个知人善用,关心下属,在工作中能够给予帮助的,为我们指明方向的领导就更好了。

21、“对公司有什么问题要问”

回答思路:①可以问一下“未来几年,公司会有什么新的发展计划” ②可以问一下在将来工作中有哪些需要注意的地方。

.net技术题

1.类成员有几种可访问性?

答案: private :私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public :公共成员,完全公开,没有访问限制。

internal:在同一命名空间内可以访问

2.面向对象的特征有哪些方面

答案: 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4.多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题

3.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点

答案: session(viewstate)简单,但易丢失

application全局

cookie简单,但可能不支持,可能被伪造

input ttype=“hidden”简单,可能被伪造

url参数简单,显示于地址栏,长度有限

数据库稳定,安全,但性能相对弱

4.讲解一下你所理解的三层架构

答案:重点讲解三层架构的优缺点,看是否能正确地理解三层架构

5.什么是装箱和拆箱

答案:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱

6.ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释

答案:Asp.net的身份验证有有四种,分别是“Windows|Forms|Passport|none”,其中又以Forms验证用的最多,也最灵活。

7.请解释转发与跳转的区别?

答案:Transfer是转发从服务器端跳转

Redirect就是跳转从客户端跳转

8.c/S结构模式与B/S结构模式的主要区别是什么?

答案: 首先,在系统的性能方面。只要拥有可上网的浏览器,就可以使用B/S系统。不过,B/S结构的客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作要由服务器承担,这就对服务器提出了很高的要求,无形中增加了用户在这一方面的投入。采用C/S结构时,客户端和服务器都承担部分工作,有效利用了客户端和服务器端的资源,使用户不必在硬件上有更多的投入。另外,浏览器页面不便于修改,这为用户定制自己的文件时带来了不便,比如用户想自定义一个报表,用B/S结构的系统就比较难完成。

其次,在系统的开发方面,C/S结构的开发对开发者提出了较高的要求,整个开发过程比较复杂。与B/S结构相比,C/S技术的历史更为“悠久”,从技术成熟度和开发人员普遍掌握的水平来看更为成熟。

第三,系统升级方面。C/S结构中若有某一模块发生改变,可能要关联到其它模块的变动,使系统升级的成本较大;而B/S结构在开发、维护阶段几乎所有的工作都集中在服务器端,只需更新服务器端的软件就可以了。如果系统升级比较频繁,那么B/S架构的产品就具有维护工作量少的优势。

第四,安全性方面。在安全性上,B/S结构则略显不足,毕竟现在网络安全系数不高,只要拥有密码,任何人都可以进入到用户的系统中;而C/S结构由于需要特定的客户端软件,并且一般来说都要对客户端加密,甚至可以限定只有某一台计算机可以使用这个客户端,因而对安全性有更多的保障。

9.override与重载的区别?

答案:重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

Override 是进行基类中函数的重写。为了适应需要

10.GC是什么? 为什么要有GC

答案: GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

11.什么是虚函数?什么是抽像函数?

答案: 虚函数:没有实现的,可由子类继承并重写的函数。抽像函数:规定其非虚

子类必须实现的函数,必须被重写

12.ADO.net中常用的对象有哪些?

答案: Connection 数据库连接对像

Command 数据库命令

DataReader 数据读取器

DataSet 数据集

13.接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实

体类(concrete class)?

答案: 接口可以继承接口。抽像类可以实现(implements)接口,抽像类是否可继承

实体类,但前提是实体类必须有明确的构造函数

14.在循环中,return,break,continue,goto的区别

答案: break-立刻终止循环,continue,跳出本次循环,goto,可以跳出循环,到已

标记好的位置上,return,跳出循环和其包围的函数

15.列举一下你所了解的XML技术及其应用

答案:答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它

16.什么叫应用程序域

答案:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小

17.进程和线程的区别?

答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

18.堆和栈的区别?

答:栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。

堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。

19.软件开发过程一般有几个阶段?每个阶段的作用?

答:需求分析,架构设计,代码编写,QA,部署

20.foreach和for的区别是什么

答案: foreach是只读的,for是可读可写;使用方式的不同

SqlServer技术题

1.请说出数据库中存储过程和函数的区别

答案: 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程

函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。

2.谈谈你对数据库中“视图”的看法

答案:视图是一种虚拟表,通常是作为来自一个或多个表 的行或列的子集创建的。视图本质上讲,就是保存在数据库中的select查询

视图并不是数据库中存储的数据值的集合。

对最终用户的好处– 结果更容易理解– 获得数据更容易

对开发人员的好处– 限制数据检索更容易– 维护应用程序更方便

3.什么是规范化?三范式的定义是什么?

答案: 从数据库的表中,除去冗余数据的过程称为规范化。

三范式的定义:

第一范式的定义: 如果一个表中没有重复组(每一字段只存储一个值)。

第二范式的定义:如果一个表属于1NF,任何属性只依赖于关键字,则这个表属于第二范式(必须先符合1NF的条件,且每一行都能被唯一的识别)

第三范式的定义:如果一个表属于2NF,且不包含传递依赖性(没有一个非关键属性依赖于另一个非关键属性)

4.什么是索引?它的优、缺点是什么

答案: 索引:是一个数据库对象,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,然后根据指定的排序次序排列这些指针

优点:提高查询执行的速度。强制实施数据的唯一性。提高表之间联接的速度。缺点:存储索引要占用磁盘空间。数据修改需要更长的时间,因为索引也要更新

5.游标的作用?如何知道游标已经到了最后?

答案: 游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后

6.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有

何区别?

答案:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次

7.动态查询如何实现?表的结构变化后,如果不需要修改程序,如何设计和实现查

询?

答案: 将查询封装进存储过程中,通过调用存储过程实现动态调用;表结构发生变化后修改相应的存储过程即可再不修改程序的情况下实现查询

8.如何处理几十万条并发数据?

答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取

9.数据库系统的三级模式是什么模式?

答案:分别为概念模式、内部级模式与外部级模式。

10.如何优化数据库,如何提高数据库的性能?

答案: 优化数据库主要是优化查询语句,通过高性能的查询语句可以提高数据库的性能

第四篇:NET 开发总结

.NET 开发总结

Web窗体的简单说明:

这次作业都有一个共同点就是连接数据库,对数据连接函数不是很熟悉,弄了好久,最后还是请教同学才实现数据库的连接,连接代码如下图:

数据库连接完成后,开始进行数据的整体的查询,将查询到的数据转换成参数,利用参数进行分页,将数据显示在web上去。

对于分页,我是按照每页显示是个数据来显示的,本来还打算弄一个下拉窗口,当窗口下拉式可以选择多少个数据分页显示,这一部分的功能还没来得及去实现。

分页的部分代码

对于web 的查询功能,用的是模糊查询,代码如图

本次的.net开发技术作业,我选择做webForm的分页,之前一直没有写过web的代码,只自学过一点脚本语言,对C#也不太了解,所以当做起来的时候比较困难,自己上网找了不少资料,到图书馆借了一些关于asp.net web开发的书,对C#开发的平台还不是很熟悉,当程序调试起来非常困难,经常因为小问题而浪费许多的时间,开发过程中请教过一些有过web开发经验的同学,也有帮助我进行程序的调试。由于不熟悉浪费了许多时间,没有对代码没有时间去整理,使得代码看起来很凌乱,很累赘,看起来显得麻烦,还是一些功能还没有实现,像查询后的数据进行分页,以及数据的修改和删除。

第五篇:sap_abap面试知识点总结

1)

PROCESS BEFORE OUTPUT(简称PBO):进行屏幕初始化工作,如数据库选择,屏幕元素属性动态设定等,如根据用户权限和继电定值申请单的状态确定哪些屏幕字段是输入状态,哪些字段是显示状态;PBO模块结束后,系统显示当前用户屏幕。

2)

PROCESS AFTER INPUT(简称PAI):当用户在屏幕上执行某些功能后被触发,PAI结束后,屏幕可能进入后续或返回上一个屏幕序列;

3)

PROCESS ON HELP-REQUEST(简称POH):当用户按下F1键要求查看帮助信息时触发;

4)

PROCESS ON VALUE-REQUEST(简称POV):当用户按下F4键要求查看搜索帮助时触发。

5)如何实现f4帮助

方法一:

a..事务码SE11打开数据字典,选中搜索帮助,填写名称,点击创建.(前提先把表格和数据元素以及域都建好了)

2.填写基本相关信息,搜索帮助描述,取数的表,显示的对话框类型.3.填写搜索帮助参数,字段名称,输入输出属性,显示位置次序,数据元素.4.保存,激活.5.打开要建立搜索帮助的表,选中要建立搜索帮助的字段,点击SRCH HELP,填入你建立好的搜索帮助的名称.6.保存,激活表.7.重新保存要用到表中搜索帮助的程序,激活后就可以使用搜索帮助来选择值了.Ps:在建立屏幕程序的时候要填上屏幕中你所填变量的f4的名字

注:此方法比较直观,但是有相关的前提:要添加搜索帮助的表中的字段,必须要有参照的数据元素.没有数据元素无法建立搜索帮助.所以前提就是我们要事先维护好数据元素.方法二:

在ABAP程序中直接写相关代码来实现.具体步骤: 1.添加VALUE-REQUEST事件.示例代码: AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_XILEI-LOW.PERFORM FRM_XILEI_SELECT.2.在子程序中实现搜索帮助功能.示例代码: FORM FRM_XILEI_SELECT.*细类的搜索帮助

DATA: RT_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF IT_XILEI OCCURS 0, XILEI LIKE ZSFQ10-XILEI, END OF IT_XILEI.SELECT XILEI INTO CORRESPONDING FIELDS OF TABLE IT_XILEI FROM ZSFQ10.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'XILEI' DYNPPROG = SY-REPID DYNPNR = SY-DYNNR DYNPROFIELD = 'S_XILEI-LOW' VALUE_ORG = 'S' CALLBACK_PROGRAM = SY-REPID TABLES VALUE_TAB = IT_XILEI RETURN_TAB = RT_TAB EXCEPTIONS PARAMETER_ERROR = 1 NO_VALUES_FOUND = 2 OTHERS = 3.IF SY-SUBRC <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM." FRM_XILEI_SELECT 3.保存,激活程序后,即可在屏幕上使用搜帮助了.注:此方法不是太直观,但是不用在数据字典中建立相关的数据,只需在程序中动态提取显示.方法三:

固定值。我们在Domain 中可以定义 value range,在 value range 中定义的值,就可以出现在f4帮助中。这是最简单的实现f4帮助的方法

方法四:数据类型关联。加入我们在选择屏幕上定义一个dats类型的参数,她就自动调用了日期类型的f4帮助。

6)如何实现事务码分配给程序

Se93 7)sap中如何实现数据的批量录入

a. lsmw-----事务码lsmw b.bdc----事务码shdb(bdc调用的时候一般自动生成的程序对于一个BDC程序来说,有两个固定的internal table 需要声明:bdcdata和messtab,名称可以变,但是声明时一定要

* Batchinputdata of single transaction data: abclike bdcdata occurs 0 with header line.* messages of call transaction data: def like bdcmsgcoll occurs 0 with header line.Like 后面的table type(这里是一个structure)是不能改变的。

有两个固定功能的form:bdc_dynapro和bdc_field 名称同样是任意的,但是程序代码应该是相同的,(强烈建议不要改动,因为会给自己添加麻烦)

另个还有一个Internal Table或者work area是用来放从外部读进来的数据的,结构应该和你的外部文件的有相关的字段结构。

一次读进全部的记录然后循环处理 loop at [internal table]„„ process„„endloop。或者一条一条读进并处理,然后循环读下一条 do „„ process„„enddo。

其中Process 分为两个部分:1.填充bdcdata表。

2.Call transaction or Call Function ‘BDC_Insert’返回消息放入

Messtab.Bdc的运行方式:N---后台更新;A-----表示显示所有bdc录制屏幕执行过程及数据;E-----仅显示出错事务屏幕

更新模式:L------本地更新;A------异步更新模式

S-----异同步更新模式 b. bapi函数

c. catt或是ecatt现在多用ecatt取代catt

8)sap创建类的步骤

1.声明类并定义类的使用方法

2.使用data语句中的type ref to来表示引用某一具体类以声明新的对象 3.使用create object语句创建类实例化对象。

4.通过“->”或“=>”运算符访问类对象或组件,可以通过变量对方法名进行指定,实现动态调用。

Class definition Public section.…..Protexted section.…….Private

section.……..Method ….Endmethod.…..Endclass.当所声明的类中包含方法时,需要通过下列代码对方法的实现行为进行定义 Class implementation Method …endmethod.…..Endclass.9)sap实现增强的几种方式:

方式有:表增强、屏幕变式和事务变式、程序增强(用户出口和客户定制出口、业务增强badi、业务事件bte、增强点、img后台配置)、菜单增强。

10)sap query 创建步骤:

1、创建用户组user group(SQ03)

2、创建infoset,即设定列表关联的数据表及字段(SQ02)

3、Basic list的创建

Sq01是创建query的事务码

11)Alv通过标准函数调用,它通过程序传递数据内表的方式来显示数据。Alv输出的方式有两种grid和list。Alv中的layout主要用于设定alv的输出格式,而fieldcat主要用于alv结构定义,包括具体的字段名称、类型、格式等属性。Layout和fieldcat同属于类型池slis。Alv调用主要是通过以下几个函数实现:REUSE_ALV_FIELDCATALOG_MERGE(根据内表结构返回fieldcat字段结构信息)、REUSE_ALV_GRID_DISPLAY/REUSE_ALV_LIST_DISPLAY:输出alv报表、12)数据分析方法:(找表的18种方法)--------包括F1字段分析方法、ST05数据追踪方法、where-used list方法、数据词典分析方法、调试分析方法、文本方法等。

13)。

Sap工作流构建步骤:查找、创建触发事件;构建业务对象;构建程序/屏幕;构建工作流引擎;构建规则;测试 创建任务(事务码pftc)、业务工作台(事务码SW11)工作流系统的配置----事务码SWU3 工作流设计器-------事务码swdd

14)smartform 其工具主要分为三大部分,分别用于创建form(板式)、style(样式)、text module(文本模块).如果想要实现系统可以直接打印出来自己配置的smartform,需要通过nace(事务码)进行后台配置。

Scriptform:格式绘制器-----se71;标准文本--------SO10;style体例设计--------se72 Sap script与abap连接通过三个function实现:OPEN_FORM;WRITE_FORM;CLOSE_FORM 事务码se78是对sap系统上传图片和文本的事务码。Scriptform无法直接复制,需要先使用工具将相关scriptform导出为本地文件,在开启的需求系统中将文件导入,由此实现scriptform的复制。(通过se38,输入程序名RSTXSCRP,)步骤复杂,见书步骤复杂见书。。

15)屏幕程序开发

精通Dialog屏幕标准元素实现的界面,主要包括:TABLE CTROL, TAB STRIP,Dropdown List, F1功能、F4功能等。精通CLASS方式实现复杂的界面,包括:Container 控件(Custom Container、Splitter Container、Docking Container等;ALV Tree 控件;ALV GRID 控件(该控件可以通过调用ALV Class中的方法和属性实现对ALV的复杂控制(如增加用户按钮,双击事件,对话框显示详细等);以及Picture 控件,TEXT EDIT控件等的实现;熟练掌握Collapsible Area技术实现界面可折叠的复杂屏幕设计。

16)接口开发:RFC 关于ABAP利用OLE连接外部数据库的范例参见程序 ZPRG_CONNET_SQL_BY_OLE_ADO

17)业务总结

SD常用命令集合 客户主数据 XD01--创建 XD02-修改 XD03--显示 销售订单 VA01--创建 VA02--修改 VA03--显示

对销售订单交货 VL01N--创建 VL02N--修改 VL03N--显示 VL09取消发货 MBST(取消凭证)对销售订单开票

一种参照销售订单开票 参照交货单开票 VF01--开票 VF02--修改 Vf03-显示

VF11冲销发票

表: 交货 LIKP LIPO 销售订单: VBAK VBAP 发票 MKPF MSEG 客户余额 FD10N 销售定价过程(客户信息记录)VK31--创建 VK32-修改 VK33-显示 财务简介 做凭证 F-02 凭证类型

RV--销售发票凭证 DZ-收款凭证

PP模块常用命令集合 BOM: CS01--创建 CS02-修改 CS03-查看 BOM展开

CS12--BOM展开 CS13--展开汇总 CS14--BOM比较 CSMB--按树状展开 CS15-BOM反查

工作中心

CR01--创建工作中心 CR02--修改 CR03--查看 工艺路线 CA01--创建 CA02--修改 CA03-查看

手工创建生产订单 CO01--创建 CO02--修改 CO03--查看

对生产订单发货 MIGO MB26 MB1A MMSC--扩充库位 对生产订单报工 CO11 CO11N CO13-冲销报工 CO14--查询报工

对生产订单收货 MIGO MB31 对生产订单关闭

CO02---技术实现TECO 订单状态 : REL---下达 CNF--PCNF DLV--PDLV TECO--技术实现 CLSD--关闭 预留表--RESB 通过生产订单号查询到预留单号,再查找物料

在制品----针对自制件不在DLV 在途----采购件--(未清采购订单)

查询作业类型价格 KP26 作业类型 KL01--创建 KL02--维护 KL03--显示 MRP运算代码

M61--创建物料主计划 MD01--运行MRP

18)屏幕元素 Parameters的用法

…..as checkbox:创建checkbox对象

…….obligatry:限制该select-options为必输项,执行中系统会提示 ……radiobutton groupradi:建立分组单选框 ……visible lengthvlen:定义显示长度

……as listbox visible length vlen :创建一个下拉列表,并指定输出长度

Selection-screen 对象:

Select-screen 语句用于创建屏幕的框架结构,主要包括屏幕元素的创建、子屏幕的创建等。子屏幕主要分两种,一种为include screen,可以通过report端程序直接调用;另一种为subscreen,需要通过screen painter 所创建的屏幕引用。具体语法如下: 1)selection-screen begin of screen scr.……..Selection-screen end of screen scr.该语法用于定义一个include

screen,可以通过call方法在report程序中引用,call屏幕窗体时加入staring at …ending at…参数可以将所定义屏幕窗体作为一个新的对话框窗体来引用,并指定其创建的具体大小及位置。

当从一个主屏幕中来调用其程序中的另一窗体时,必须使用call selection-screen的方法。

2)selection-screen begin of screen scr as subscreen。

该语法用于定义一个subscreen。

3)selection-screen begin of block block。

………

Selection-screen end of block.该语法在屏幕中定义一个block,其扩展语法如下: ……with frame:创建一个框架

……Title title:创建一个带标题的框架

…….NO INTERVALS: 所创建的框架中限制select 只有一个输入项。4)selection-screen include 参照某一个已经定义的屏幕元素来创建。

屏幕事件的中止: 1)exit :中止某一事件模块,但不影响其他事件的执行。2)reject:功能与exit基本一致。3)stop:强制中止所有事件。

内表的清空:

Clear:仅清空header line,对内表数据存储空间不影响。Refresh:清空内表数据存储空间,对header line不影响

Refresh from table :清空内表存储空间,填空从数据库表所获数据。FREE:清空内表数据存储空间,对header line不影响

Message Message w000(mid).----------语法,mid为类名

Pbo用于控制屏幕输出前的事件,如数据初始化、赋值等。

PAI 用于控制屏幕输出后的事件。包括相关控件操作以及数据处理等。

下拉列表框:步骤

1)在屏幕新增一文本控件,设置其属性dropdown为listbox 2)在flow logic PAI中增加下列代码

PRO AFTER INPUT.PROCESS ON VALUE-REQUEST.“定义调用F4帮助或单击该栏位时触发事件 FIELD LANG MODULE SET_VALUE.3)定义set_value模块,编辑abap代码。下拉列表的原理是先将列表中需要的数据保存在内表,再将内表的值传递给屏幕中的文本字段。

对列表赋值需要调用功能函数F4IF_INT_TABLE_VALUE_REQUEST

屏幕工具条和菜单栏的设计可以通过事务码se41实现

Picture control的构造思想: 上传图片的事务码是 smw0,CALL FUNCTION 'DP_PUBLISH_www.xiexiebang.comdp_lifetime_transaction IMPORTING

URL = url EXCEPTIONS

OTHERS = 1.详见自己的程序————ZWSCR_PIC 子屏幕相关问题 Subscreen

START-OF-SELECTION.--------------------------在单击执行按钮后触发该事件

END-OF-SELECTION------------------------------该事件应用于所有数据处理完成,即

START-OF-SELECTION相关事件执行完成,但输出屏幕还未显示之前。

下载Net面试知识点总结(精选五篇)word格式文档
下载Net面试知识点总结(精选五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    .NET实习个人总结

    .NET实习个人总结 实习就要接近尾声了,其实我很不愿意写这个总结,因为在写完这个总结的时候也就意味着要结束我的实习生活了,在这段实习期间,我收获到了不少的知识,而且也懂得了......

    Linux笔试面试知识点总结

    Linux笔试面试知识点总结 在Linux的笔试中常会考察一些知识点。这里我们就来总结一下有可能出现的知识点都有哪些。 1. 在Linux系统中,以文件方式访问设备 。 2. Linux内核引......

    面试题.net

    1、简述 private、 protected、 public、 internal 修饰符的访问权限。 2、C#中的委托是什么?编写一个简单的委托代码。 3、C#中抽象类是什么?编写一个简单的抽象类代码。 4、......

    NET程序员

    .NET程序员 杭州潮流信息技术有限公司成都分公司 公司规模: 10049人 公司性质: 私营.民营企业 公司行业: 计算机软件,教育·培训·科研·院校,中介服务           职位性质:全职......

    .net学习心得

    1.反射:反射是.net中的重要机制,通过反射可以在运行时获得.net中每一个类型,包括类、结构、委托和枚举的成员,包括方法、属性、事件,以及构造函数等。有了反射,既可以对每一个类型......

    .NET学习心得

    .NET学习心得 我是从大三开始接触Microsoft.NET的,大三上学期我们有一门课是C# AND ADO.NET DEVELOPMENT。虽然我们当时用的C#程序的开发平台是.NET,但是我对.NET却了解粗浅,......

    浅谈.net MVC

    这些天开始学习asp.netmvc,用传统的asp.net已经快四的年了,刚开始接触asp.netmvc确认感觉有点不适应,主要体现在asp.netmvc的实现上。 ASP.net MVC使用心得:问题总结powered by......

    《.NET程序开发》心得总结

    《ASP.NET程序开发》心得总结 短短的四个月很快过去了,在这短短的四个月里,我学到了很多,了解了很多。经过一个学期的简单学习和上课听讲,初步掌握了ASP.NET动态网页制作的一些......