Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。
Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及调用存在数据库中的存储过程等。这个对象是架构在Connection 对象上,也就是Command: 对象是通过在Connection对象连接到数据源。
DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Command 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet 使用的功能。
DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来,DataSet是放在内存中的。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是
页面之间传递值的几种方式和优缺点
5)Application传值:对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock
中定义的类,而string、int、bool相当于C#中对这些类定义的别名。CTS。
中会存在内存泄漏吗,请简单描述。
所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。.Net中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象变成了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。虽然.Net可以回收无用的对象,但是.Net仍然存在由于使用不当导致的内存泄露问题。.Net中的内存泄露的情况:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是.Net中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是.Net中可能出现内存泄露的情况,例如,缓存系统,我们加载了一个对象放在缓存中(例如放在一个全局Dictionary对象中),然后一直不再使用它,这个对象一直被缓存引用,但却不再被使用。扩展:使用弱引用那么即使被引用也可以被回收。
原理的理解。谈谈 Framework中的类是专门供C#调用的是吗?
中用来进行Web开发的一种技术,等支持.Net的语言编写。
C#是使用最广泛的支持.Net的编程语言。除了C#还有开发的集成开发环境(IDE),使用VisualStudio可以简化很多工作,不用程序员直接调用 →),也就是无法在页面中向和当前域名不同的页面发送请求,可以使用在当前页面所在的域的服务端做代理页面的方式解决。
GC是.Net的垃圾收集器,可以进行内存资源的回收,程序员无需关心资源的回收,当一个对象没有任何引用的时候就可以被回收了。一个对象可以被回收并不意味着一定会被立即回收,GC会选择时机进行回收。可以调用程序可以像开发Winform程序一样简单。Web服务控件最终还是被渲染(Render)为Html标签。使用WEB服务控件的劣势是会生成一些无用的属性、ViewState等,不利于SEO,一般在内网系统或者互联网系统的后台中使用WEB服务控件。如果没有复杂的服务器交互动作,就不用Web服务器控件。runat=server的HTML控件有什么特点:路径不用程序员解析,可以使用“~”来虚拟路径。
每个页面的生命周期为用户的每一次访问,也就是说每一次客户端与服务器之间的一个往返过程.全局变量的生命周期在此之间.
的utf-8格式进行编码的。
1 使用异步方式调用Web服务和远程对象
只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的 Remoting 的工作原理是什么?
答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
string 是 .NET 框架中 将确定是否需要分析和编译页,从而确定是否开始页面的生命周期,或者是否可以在不运行页面的情况下发送页面缓存以进行响应;
服务器控件的生命周期?
完成操作:检查IsPostBack属性来确定是不是第一次处理该页;创建或重新创建动态控件;动态设置主控页;动态设置Theme属性;读取或设置配置文件属性;
注:如果请求是回发请求,则控件的值尚未从视图状态恢复,即:不应该在此事件中设置控件属性。
2)、Init完成操作:在所有控件都已经初始化并且应用所有外观设置后引发。使用该事件来读取和初始化控件属性;
3)、InitComplete完成操作:由Page对象引发,使用该事件来处理要求完成所有初始化工作的任务;
4)、PreLoad完成操作:为页和所有控件加载视图状态,然后处理 Request 实例包括的任何回发数据;
5)、Load完成操作:以递归方式加载所有控件;
6)、控件事件完成操作:处理控件引发的事件;
10)、Render11)、UnLoad服务器控件的生命周期初始化、加载视图状态、处理回发数据、加载、发送回发更改通知、处理回发事件、预呈现、保存状态、呈现、处置、卸载; 会将其编译为从 HttpApplication 类派生的类,然后使用该派生类表示应用程序;
页面在什么时候产生?又在什么时候销毁?1)、Page_Init() —— 初始化对象这一过程主要是初始化包括页面本身的所有控件,每次的页面载入就会执行一次初试过程,而在这里面访问到的也是控件的初始值。还有就是可以通过OnInit()来重载初试化事件;
2)、LoadViewState() —— 导入ViewState数据在初试化事件后,在 LoadViewState 事件中所有控件将获得他们的第一个属性 ViewState 属性,这个属性最终将被返回给服务器以判断这个页面是已经被用户访问完毕还是仍然在被用户所访问。也可重 LoadViewState 事件对相应的控件进行值设定;
4)、Page_Load() —— 导入对象这个过程就比较熟悉了,也是在页面的每次载入时一定会执行,但是注意和 PageInit() 之间的区别,所有的对象第一次被布置在 DOM 页面(在对其作出任何改变,因为此时已经脱离了数据库调用以及 ViewState 更新了,也可以通过OnPreRender来重载;
7)、Page_Render() —— 呈递对象呈递页面所有对页面控件的修改完成后 ViewState就被保存了。运用HTML创建给浏览器输出的页面的时候Render事件就发生了。在Render事件过程中,页面调用其中的对象将它们呈递给HTML。然后,页面就可以以HTML的形式被用户的浏览器访问了。当Render事件被重载时,开发者可以编写自定义的HTML代码使得原先生成的HTML都无效而按照新的HTML来组织页面。Render方法将一个 HtmlTextWriter 对象作为参数并用它将HTML在浏览器上以网页的形式显示。这时仍然可以做一些修改动作,不过它们只是客户端的一些变化而已了。亦可以重载Render事件;
8)、Unload event —— 卸载对象当想服务器请求一个对象的时候,就会在内存里生成一个继承页面对象,也就是页面的类,它继承自”,那么下面的问题应该大都可以给出较完美的***。
注:对于每个判断是非问题,都要考虑“为什么”与“为什么不”。
中所有可序列化的类都被标记为_____?
托管代码中我们不用担心内存漏洞,这是因为有了______?
环境中运行的任何代码都是受管制的代码(managed code),.Net外部的代码也运行在windows上,这些代码称为未受管制的代码(unmanaged code)。
使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成.跨语言异常处理.增强的安全性.版本控制和部署支持.简化的组件交互模型.调试和分析服务等。
强类型语言是能够禁止任何违反类型系统的代码的语言,或者说是能够捕获所有违反类型系统的错误的语言。我们说C++相对于C是强类型的,是因为C++禁止了一些C中的隐式转换,比如将void*转换为任意的指针类型。
装箱和拆箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。拆箱将从对象中提取值类型。
每个类型成员都有一个唯一的签名。方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。当定义两种或多种具有相同名称的方法时,就称作重载。
一种确定公共语言运行库如何定义.使用和管理类型的规范。
.NET Framework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。
要和其他对象完全交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。为此定义了公共语言规范 (CLS),它是许多应用程序所需的一套基本语言功能。
中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。比如分工,美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混在一起,难以维护。
框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用页面一般都对应一个隐藏类,一般都在中的代码隐藏文件的描述正确的是(C)
a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
(3).下列描述错误的是(D)
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
DataReader使用时始终占用SqlConnection,在线操作数据库,每次只在内存中加载一条数据,所以占用的内存是很小的,是只进的. 只读的
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接(非连接模式),将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行 回传更新操作(动态操作读入到内存的数据)
错误:const不能被修饰为static ;因为定义为常量 (const )后就是静态的(static )。
2.31、下面程序的执行结果是什么?
2.32、下列哪个名词和WebService不直接相关?(B)
SOAP和HTTP的关系:SOAP基于Http协议的,和普通网页不同的是网页返回HTML,SOAP则是符合SOAP协议的XML数据。
2.33、下面程序的执行结果是什么?
解答:注意if (i <=0)后面的“;”,由于有了“;”,所以Console.WriteLine("i必须大于0")不再是和if一起的一部分,而是独立的语句。for循环也是如此。
2.34、下面程序的执行结果是什么?
解答:return先执行,finally后执行,所以return的值是没有i++之前的0。注意并不是return的时候函数真的就“返回、执行结束”了,return只是标记函数的返回值是0,标记完了还会执行finally中的代码,只有finally中的代码执行完成后函数才真正的返回。
2.35、在下述选项时,没有构成死循环的程序是 (C)
2.36、下列哪个是和数据库访问技术关系不大的技术(C)
2.37、下列哪些说法是错误的(AC)
A、将bmp格式的文件修改为jpg是修改图片格式最简单的方法
B、将QQ动态表情显示在网页上用gif格式比较好
C、将bmp格式的图片放到网页中可以优化网站速度
D、png格式用在网页中可以实现透明的效果。
***:A、C。A错误是因为修改文件的后缀并没有真的修改文件的格式,要使用Photoshop、mspaint等图片处理工具进行转换才可以。C错误是因为在网页中不能使用bmp图片。
2.38、从以下简写中任选一个简单描述
HRM(Human Resource Managment):人力资源管理,包括员工管理、薪资管理、入职管理、离职管理、报销管理、请假管理等
CRM(Customer Relation Managment):客户关系管理系统,包括客户管理、客户关怀、客户回访、投诉管理、咨询管理、报修管理等
2.39、下面程序的执行结果是什么?
解答:结构体是复制传递的。
302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved
第二,使用sendRedirect,Servlet会自动构造一个包含新链接的页面(用于那些不能自动重定向的老式浏览器)。
最后,sendRedirect能够处理相对URL,自动把它们转换成绝对URL。
注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求
(缺少了后面的斜杠),有的服务器返回301,有的则返回302。
严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。
工作人员会在48小时内处理,处理结果请关注系统通知,感谢您对百度知道的支持。
302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved
第二,使用sendRedirect,Servlet会自动构造一个包含新链接的页面(用于那些不能自动重定向的老式浏览器)。
最后,sendRedirect能够处理相对URL,自动把它们转换成绝对URL。
注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求
(缺少了后面的斜杠),有的服务器返回301,有的则返回302。
严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。
工作人员会在48小时内处理,处理结果请关注系统通知,感谢您对百度知道的支持。