C#面试题以及答案(一)

  1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么?

  答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。

  2.什么是事务?什么是锁?

  答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。

  锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。

  3.什么是索引,有什么优点?

  答:索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。

  4.视图是什么?游标是什么?

  答:视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作;

  视图通常是一个或多个表的行或列的子集;

  视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相比多表查询更方便),限制数据检索(比如需要隐藏某些行或列),维护更方便。

  游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、

  5.什么是存储过程?有什么优点?

  答:存储过程是一组予编译的SQL语句

  它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

  2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。

  3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。

  4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

  6.什么是触发器?

  答:触发器是一种特殊类型的存储过程,出发器主要通过事件触发而被执行的,

  触发器的优点:1.强化约束,触发器能够提供比CHECK约束;

  2.跟踪变化,触发器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化;

  3.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上的触发器被触发

  7.简单介绍下ADO.NET和ADO主要有什么改进?

  答:ADO以Recordset存储,而ADO.NET则以DataSet表示,ADO.NET提供了数据集和数据适配器,有利于实现分布式处理,降低了对数据库服务器资源的消耗。

  7.1 ASP.NET与ASP相比,主要有哪些进步?

  答:ASP.NET实现了面向对象编程,预编译的服务器端代码而不像ASP那样解释执行提高了性能,代码分离易于管理,可订制和扩展性,功能强大的开发工作,更好的安全机制。

  7.2 C#中的委托是什么?事件是不是一种委托?

  答:委托本质上是一种“方法接口”,它相当于C/C++中的函数指针,当然它比函数指针安全,在C#中通常用于事件处理。事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为委托。

  8.如何把一个array复制到arrayist里

  答:foreach( object arr in array)arrayist.Add(arr);

  8.1 列举ADO.NET中的五个主要对象,并简单描述

  答:Connection连接对象,Command执行命令和存储过程,DataReader向前只读的数据流,DataAdapter适配器,支持增删查询,DataSet数据级对象,相当与内存里的一张或多张表。

  9.概述三层结构体系

  答:表示层(UI),业务逻辑层(BLL),数据访问层(DAL)

  

本文已影响6827
上一篇:C面试题及参考答案 下一篇:C#面试题以及答案(二)

相关文章推荐

|||||