C#、.Net经典面试题目及答案

1 请你说说   .NET  中类和结构的区别?

答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能申明有默认的构造函数,为结构的副本是又编译器创建

和销毁的,所以不需要默认的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是应用类型,

改变其变量的值会改变其原值。申明结构用Struck 关键字,申明类用 class 关键字,向方法传递结构是时是通过值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New关键字。类可以实现接口。

2,死锁的必要条件?怎么克服?

答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。

3,接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?

答:接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。

4,构造器Constructor是否可以被继承?是否可以被Override?

答:Constructor不可以被继承,因此不能被重写(Overriding),但可以被重载(Overloading).

5,当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?

答:不可以,一个对象的方法只能由一个线程访问。

6,用最有效的方法算出等已8对于几?答:2<<3.

7,C#是否可以对内存直接进行操作?

答:这个问题比较难回答,也是个很大的问题。但是可以这样问答。

C#是可以对内存进行直接操作的,虽然很少用到指针,但是C#是可以使用指针的,在用的时候需要在前边加unsafe,,在.net中使用了垃圾回收机制(GC)功能,它替代了程序员,不过在C#中不可以直接使用finalize方法,是在析构函数中调用基类的finalize()方法。

8,Error和Exception有是区别?

答:error表示恢复不是不可能,但是很困难,exception表示一种实际或实现问题,它表示程序运行正常不可以发生的。

9,谈谈final,finally,finallize的区别?

答:final 用于申明属性,方法和类,表示属性不可变,方法不可以被覆盖,类不可以被继承。

Finally 是异常处理语句结构中,表示总是执行的部分。

Finallize 表示是object类一个方法,在垃圾回收机制中执行的时候会被调用被回收对象的方法。

10,HashMap和Hashtable区别?

答:HashMap是Hashtable的轻量级实现,非线程安全的实现他们都实现了map接口,主要区别是HashMap键值可以为空null,效率可以高于Hashtable。

11,Collection和Collections的区别?

答:Collection 是集合类的上级接口,Collections 是针对集合类的一个帮助类,它提供一系列静态方法来实现对各种集合的搜索,排序,线程安全化操作。

12,C#中委托是什么?事件是不是一种委托?

答:委托是一种安全的类似与函数指针,但是她比指针要安全的多,它可以把方法作为一个参数传递给另一个方法,可以理解为指向函数的引用。事件是一种消息机制,它是一种委托,委托不带方法体。

13,Override,Overload,的区别?

答:Override是重写的意思,它表示重写基类的方法,而且方法的名称,返回类型,参数类型,参数个数要与基类相同。

Overload  是重载是意思,它也表示重写基类的方法,但是只要方法名相同,别的可以不同。

14,在一个BS结构中需要传递变量值时,不能使用session,coolke,application,你有几中方法?

答:this.server.Transfer,Querystring.

15,C#中索引器实现过程,是否只能根据数字索引?

答:不是的,可以是任意类型。

16,New有几种用法?

答:有3种,第一种是,实例化如:NewClass()

第二种是,public  new  隐藏基类的方法

第三种是,在泛型类申明中的任何类型参数都必须有公共的无参构造函数。

17,任何把一个Array复制到Arraylist中?

答:Foreach(object o in Array),ArrayList.Add(0)等有好多中种方法。自己想。

18,概述反射和序列化?

答:反射:要给发射下一个定义还是比较难的,这里先说说我的理解。反射提供了封装程序集,模块和类型对象,可以用反射动态地创建类型的实例,将类型绑定到现有对象,或者从现有对象类型里获取类型,然后调用类型的方法或访问字段和属性。

序列化:将对象转换为另一种媒介传输的格式过程。如,序列化一个对象,用Http通过internet在客户端和服务器之间传递该对象,在另一端用反序列化从该流中重新得到对象。

19,Const和ReadOnly?

答:Const用来申明编程时申明常量,ReadOnly用来申明运行时常量。

20,UDP和TCP连接有和异同?

答:TCP是传输控制协议,提供的是面向连接的,是可靠的,字节流服务,当用户和服务器彼此进行数据交互的时候,必须在他们数据交互前要进行TCP连接之后才能传输数据。TCP提供超时重拨,检验数据功能。

UDP是用户数据报协议,是一个简单的面向数据报的传输协议,是不可靠的连接。

21,进程和线程分别该怎么理解?

答:进程是比线程大的程序运行单元,都是由操作系统所体会的系统运行单元,一个程序中至少要有一个进程,有一个进程中,

至少要有一个线程,线程的划分尺度要比进程要小,进程拥有独立的内存单元,线程是共享内存,从而极大的提高了程序的运行效率

同一个进程中的多个线程可以并发执行。

22,ASP.NET页面之间传递值的几种方式?

答:QueryString,session,cookies,application,server.Transfer,respose.redictor.

23.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?

CTS、CLS和CLR分别作何

解释?答:应用程序域:就是为安全性,可靠性,隔离性,和版本控制,及卸载程序提供的隔离边界。它通常由运行库宿主创建,应用

程序域提供了一个更安全,用途更广的处理单元。托管代码:使用CLR编译语言编辑器开发编写的代码就叫托管代码。装箱和拆箱:是把值类型转换为引用类型的过程,是隐式的,相反的过程就是拆箱,是显式的。CTS

是公共类型系统,CLS是公共语言规范,CLR公共语言运行库。强类型系统:每个变量和对象都必须具有申明类型。

24.值类型和引用类型的区别?

答:值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆栈中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型l。

25.ASP.net的身份验证方式有哪些?

答:windows,forms,passport

26.解释一下UDDI、WSDL的意义及其作用?

答:UDDI是统一描述集成协议,是一套基于Web的,分布式的,为WEB服务提供的信息注册的实现标准规范,同时为也是为企业本身提供的Web服务注册以让别的企业能够发现并访问的协议标准。提供了基于标准的规范,用于描述和发现服务,还提供了一组基于因特网的实现。WSDL这是一个基于XML的描述WEB服务的接口。

27.什么是SOAP?

答:是简单访问协议。是在分布式环境中,交换信息并实现远程调用的协议。是一个基于XML的协议。使用SOAP,可以不考虑任何传输协议,但通常还是HTTP协议,可以允许任何类型的对象或代码,在任何平台上,以任一种语言相互通信。它是一种轻量级协议。

28.如何部署一个

ASP.net页面?

答:vs2003,vs2005里边都有发表机制,vs2003可以发布然后在复制部署。Vs2005可以直接部署到对应的位置。

29.如何理解.net中的垃圾回收机制?

答:.NET中的垃圾回收机制是引用程序对内存的回收和释放。当每次用new关键字创建一个对象时,运行库都要从托管堆中为其分配内存,因为空间是有限的,最终垃圾回收机制是要回收不用的内存的。已释放内存,重新使用。

30.面向对象的三大基本原则?

答:封装,继承,多态。

31.在.NET中所有类的基类是?

答:object。

32.能用foreach遍历访问的对象需要实现?

答:需要实现IEnumerable接口和GetEnumerator()方法。

33.Heap与stack的差别?

答:Heap是堆,空间是由手动操作分配和释放的,它的存储区很大的自由存储区。

Stack是栈,是由是操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。

-----------------

、列举出你知道的ORM框架?

答:dapper EntityFramework、 EJB、Hibernate、IBATIS、TopLink、OJB。

2、描述EF的几种开发模式。

答: 共三种,但是CodeFirst有一种特殊的;
CodeFirstFromDB,代码先行,但是实体来时来自于数据库!
CodeFirst 领域设计时先定义实体类,用实体类生成数据库
DbFirst 从数据库生成实体类
Model First 使用Visual Studio实体设计器,设计ER,同时生成Entity类DB

3、如何如何获取EF生成的Sql脚本?

答:1.可以调试起来通过SqlServerProfiler 来获取Sql
2.EF Dbcontext 注册日志事件输出日志查看Sql

4、请说明在哪些类型额项目中你会选择EF? 为什么?

答:这个要结合EF的特点来说:EF主要是以面向对象的思想来做数据库数据操作,对Sql语句能力没什么要求,开发使用效率高!便于上手,一般来说,使用EF框架,肯定会比直接使用ADO.NET,消耗的时间多一些。 所以在一般企业级开发,管理型系统,对数据性能要求不是特别高的情况下,优先选择EF,这样可以大大的推进开发效率!如果像一些互联网项目中,对性能要求精度很高!可以另外做技术选型,选择原生ADO.Net;

5、如何让EF支持事务?
答: EF中操作SaveChange本就是带事务的,一般在做增删改查的时候,只有在SaveChange以后才能提交到数据库中去的!同时也可以使用Windows系统提供的事务!可以实现一个跨数据的事务的!

5、请说明EF中映射实体对象的几种状态?

答: Detached:该实体未由上下文跟踪。刚使用新运算符或某个 System.Data.Entity.DbSet Create 方法创建实体后,实体就处于此状态。
Unchanged:实体将由上下文跟踪并存在于数据库中,其属性值与数据库中的值相同。
Added:实体将由上下文跟踪,但是在数据库中还不存在。
Deleted:实体将由上下文跟踪并存在于数据库中,但是已被标记为在下次调用 SaveChanges 时从数据库中删除。
Modified:实体将由上下文跟踪并存在于数据库中,已修改其中的一些或所有属性值。

6、请说明在EF中生成的映射实体中有哪些验证特性?

答:Required:不能为空
StringLength 长度

7、如果实体名称和数据库表名不一致,该如何处理?

答:实体名称和数据库表名称不一致:可以通过使用TableAttribute 特性;

8、请说明使用EF如何实现级联删除?
答:级联删除需要数据库的配合,在映射实体中配置主外键关系,然后在数据库中设置操作为级联删除即可!

9、什么叫做SQL注入,如何防止?请举例说明。
答:利用sql关键字对网站进行攻击。过滤关键字’等

10、 浅谈EF的延迟加载。
答:即当我们需要用到的时候才进行加载(读取)。当我们希望浏览某条订单信息的时候,才显示其对应的订单详细记录时,我们希望使用延迟加载来实现,这样不仅加快的了 读取的效率,同时也避免加载不需要的数据。延迟加载通常用于foreach循环读取数据时。那么我们在定义Model的时候,需要在属性前面添加virtual关键字。
如果我们想要禁止使用延迟加载,那么最好的方法是在DbContext类的构造方法中声明。

选择题:

1.在SQL Server中,( )语句是用来创建表的。 (选择一项)
A:CREATE TABLE 表名
B:DROP TABLE 表名
C:ALTER TABLE 表名
D:DELETE TABLE 表名

2.在SQL Server中,以下用于更改数据库名称的存储过程是( )。(选择一项)
A:sp_renamedatabase
B:sp_alterdb
C:sp_renamedb
D:sp_helpdb

3.在SQL Server中,关于视图的说法不正确的是( )。 (选择一项)
A:视图是一种虚拟表,通常是作为执行查询的结果而创建的
B:使用CREATE VIEW语句创建视图
C:使用SELECT语句查看视图的查询结果
D:定义视图的查询可以基于一个或多个表,但不可以基于其他视图

4.在SQL Server中,下面( )语句用于提交事务。 (选择一项)
A:COMMIT TRANSACTION
B:BEGIN TRANSACTION
C:ROLLBACK TRANSACTION
D:SAVE TRANSACTION

5.在SQL Server中,关于存储过程的说法不正确的是( )。(选择一项)
A:存储过程一般分为系统存储过程、扩展存储过程和用户自定义存储过程
B:存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的SQL程序
C:存储过程帮助实现了模块化编程
D:用户在创建自定义存储过程后不能再被修改

6.在SQL Server中,使用if…else语句时,( )可以作为条件表达式。(选择一项)
A:true
B:false
C:1>0
D:1==1

7.关于SQL Server中的视图,以下说法错误的是( )。 (选择一项)
A:视图是一种虚拟的表,通常是作为执行查询的结果而创建的
B:视图充当着对查询中指定的表的筛选器
C:更改视图中的数据,原始表中的数据不会随之更改
D:视图的结构和数据是建立在对表的查询基础上的

8.如下图所示,查询参加考试学员的姓名、学号、家庭地址,其中错误的T-SQL语句为( )。 (选择一项)

A:select stuname as 姓名,stuInfo.stuId as 学号,stuaddress as 家庭地址from stuInfo inner join stuMarks on stuInfo.stuId=stuMarks.stuId

B:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuMarks left join stuInfo on stuMarks.stuId=stuInfo.stuId

C:select stuname as 姓名,stuid as 学号,stuaddress as 家庭地址from stuInfo where stuid in (select * from stuMarks)

D:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuInfo right join stuMarks on stuMarks.stuId=stuInfo.stuId

9.SQL SERVER中,在绘制E-R图时,菱形和椭圆分别表示( )。 (选择一项)
A:属性、实体
B:实体、关系集
C:关系集、属性
D:实体、属性

10.在T-SQL中给变量赋值可以用( )。 (选择一项)
A:给局部变量赋值用set,给全局变量赋值用select
B:给局部变量赋值用set或select,不能给全局变量赋值
C:给局部变量赋值用select,给全局变量赋值用set
D:给局部变量赋值用set或select,给全局变量赋值用系统存储过程sp_setvalue

11.在SQL Server中,下列关于索引的描述错误的是( )。(选择一项)
A:一张表中主键索引最多只能有一个
B:一张表中可以有多个非聚集索引
C:应该在字节数大的列上建立索引
D:索引应该创建在经常用作查询的列

12.在SQL Server中,索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。 (选择一项)
A:插入
B:修改
C:查询
D:删除

13.下面所示的T-SQL语句使用内连接实现多表查询,查询返回多行数据: SELECT SName FORM Students INNER JOIN Score on Students.SCode = Score.StudentID WHERE Score>=60 选项中可以替换上述语句实现该查询的语句是( )。 (选择一项)

A:SELECT SName from Students WHERE SCode = (SELECT StudentID from Score WHERE Score>=60)

B:SELECT SName from Students WHERE SCode IN (SELECT StudentID from Score WHERE Score>=60)

C:SELECT SName from Students WHERE SCode NOT IN (SELECT StudentID from Score WHERE Score<60)

D:SELECT SName from Students WHERE SCode != (SELECT StudentID from Score WHERE Score<60)

14.在SQL Server中,执行下面存储过程,语句正确的是( )。 create proc proc_score ( @stuId char(10), @score int output ) as select @score=score from score where stuId=@stuId go (选择一项)
A:exec proc_score ‘2011001’,output

B:declare @score int exec proc_score ‘2011001’,@score

C:declare @score int exec proc_score ‘2011001’,@score output

D:declare @score int exec proc_score @score output ,‘2011001’

15.SQL Server中,在绘制E-R图时,( )表示关系。 (选择一项)
A:椭圆
B:矩形
C:菱形
D:多边形

16.在SQL Server 数据库,数据库系统中的编程语言是T-SQL,T-SQL语言中用于显示处理的数据结果的输出语句有两种,它们的语法分别是( )。 (选择二项)
A:put 局部变量或字符串
B:print 局部变量或字符串
C:SELECT 局部变量 AS 自定义列名
D:SELECT 局部变量 FOR 自定义列名

17.在SQL Server中,以下关于数据库设计范式的描述中,错误的是( )。 (选择一项)
A:第一范式的目标是确保每列的原子性
B:数据库如果满足第三范式,则肯定满足第二范式
C:三大范式是用来帮助数据库设计者设计结构良好的数据库
D:设计数据库时,满足的范式级别越高,系统性能越好

18.在SQL Server 数据库中,对存储过程的描述错误的是( )。 (选择一项)
A:存储过程可以重复调用
B:存储过程是自动执行的
C:存储过程是SQL语句的预编译集合
D:存储过程比一般SQL语句执行速度更快

20.在SQL Server中有一个存储图书基本信息的表book,其中有书名bookName、价格price、作者author等字段,下面代码是查询出价格比图书 “Flash开发”高的图书信息,横线处应填写的代码是( )。(选择一项)
declare @avgPrice numeric ________________________________________________ select * from book where price>@avgPrice go (选择一项)

A:select @avgPrice =avg(price) from book
B:select @avgPrice=price from book where bookName like ‘%FLash开发%’
C:select @avgPrice=price from book where bookName=‘FLash开发’
D:select @avgPrice as price from book where bookName like ‘%FLash开发%’

20.在SQL Server中,有关下列语句的实际功能,描述正确的是( )。(选择两项)
WHILE EXISTS(SELECT examResult FROM Result WHERE examResult <60) BEGIN UPDATE Result SET examResult = examResult +5 IF (SELECT MAX(examResult) FROM Result)>=90 BREAK ELSE CONTINUE END (选择二项)

A:当有考试成绩不到60分时,循环加分
B:当成绩平均分不到60分时,循环加分
C:当最高分大于等于90时,停止加分
D:以上都是错的

21.在SQL Server中,关于子查询描述错误的是( )。 (选择一项)
A:相对于表连接,子查询更适合于作为查询的筛选条件
B:使用EXISTS关键字引入一个子查询,子查询产生查询结果集
C:使用IN子查询返回的查询结果是一列零值或更多值。子查询返回结果后,外部查询可以使用这些查询结果
D:子查询可由一个比较运算符引入。比较运算符可以是=、<>、>、<、>=、<=等

22.在SQL Server中,给定如下SQL代码,执行结果为( )。 INSERT INTO student (StudentID,StudentName,Age,ClassID) VALUES(227,‘马达’,23,3) DECLARE @age INT DECLARE @cid INT WHILE(1=1) BEGIN SELECT @age=Age,@cid=ClassID FROM student WHERE StudentName=‘马达’ IF(@age<24 and @cid<>2) BEGIN UPDATE student SET ClassID=2 WHERE StudentName=‘马达’ SELECT @cid=ClassID FROM student WHERE StudentName=‘马达’ END ELSE BREAK END PRINT ‘姓名:马达 年龄:’+LTRIM(STR(@age))+’ 班级:’+LITRIM(STR(@cid)) (选择一项)
A:姓名:马达 年龄:23 班级:3
B:姓名:马达 年龄:23 班级:2
C:姓名:马达 年龄:3 班级:2
D:姓名:马达 年龄:2 班级:3

23.在SQL Server中,( )包含了一组数据库操作命令,并且所有的命令作为一个整体一起向系统提交或撤销操作请求。 (选择一项)
A:事务
B:视图
C:索引
D:子查询

24.在SQL Server中,变量@avg为一个整型变量,其中下列数据类型转换错误的是( )。 (选择一项)
A:Convert(varchar(20),@avg)
B:Cast(@avg as varchar(20))
C:Convert(nvarchar(20),@avg,100)
D:Cast(varchar(20) as @avg,100)

25.在SQL SERVER中,关于聚集索引和非聚集索引的区别有( )。(选择二项)
A:一个表可以有多个非聚集索引,但只能有一个聚集索引
B:聚集索引的查询速度要比非聚集索引速度快
C:在建立聚集索引的列上不允许有重复的值
D:非聚集索引的查询速度要比聚集索引速度快

26.在进行数据库设计时,设计者应当按照数据库的设计范式进行数据库设计。以下关于三大范式说法错误的是( )。 (选择一项)
A:第一范式的目标是确保每列的原子性
B:第三范式在第二范式的基础上,确保表中的每行都和主键相关
C:第二范式在第一范式的基础上,确保表中的每列都和主键相关
D:第三范式在第二范式的基础上,确保表中的每列都和主键直接相关,而不是间接相关

27.在SQL Server中,执行以下存储过程,语句正确的是( )。 CREATE PROC proc_student (@stuID INT,@sex BIT OUTPUT) AS SELECT @sex=sex FROM student WHERE stuID=@stuID (选择一项)

A:DECLARE @sex BIT EXEC proc_student OUTPUT @sex,1
B:DECLARE @sex BIT EXEC proc_student @sex OUTPUT,1
C:DECLARE @sex BIT EXEC proc_student 1,OUTPUT @sex
D:DECLARE @sex BIT EXEC proc_student 1,@sex OUTPUT

28.SQL SERVER数据库中,运行如下代码,输出结果为( )。 CREATE PROCEDURE test @m VARCHAR(20)=null AS if @m = null BEGIN print ‘A’ return END if @m is null BEGIN print ‘B’ END select * from sysobjects where name=@m GO EXEC test (选择一项)

A:A
B:B并显示空的表sysobject的记录集
C:A并显示空的表sysobject的记录集
D:B

29.以下T-SQL代码,说法不正确的是( )。 SELECT 学号 = StudentNo, 成绩 = CASE WHEN StudentResult < 60 THEN ‘E’ WHEN StudentResult BETWEEN 60 AND 69 THEN ‘D’ WHEN StudentResult BETWEEN 70 AND 79 THEN ‘C’ WHEN StudentResult BETWEEN 80 AND 89 THEN ‘B’ WHEN ELSE ‘A’ FROM Result (选择二项)
A:ELSE前面不用写WHEN
B:缺少END关键字
C:在每一个WHEN的条件表达式后面缺少逗号
D:缺少break关键字
30.在SQL Server中,下列关于索引的描述错误的是( )。 (选择一项)
A:一张表中主键索引最多只能有一个
B:一张表中可以有多个非聚集索引
C:聚集索引和主键索引必须同时存在
D:一般会给经常用作查询的列建立索引

31.在SQL Server中,当查询某种型号的手机的详细信息时,下划线处应填写( )。 SELECT * FROM mobilePhone WHERE phoneNo ___ (此处为返回多个phoneNo的SQL语句)(选择一项)

A:IN
B:LIKE
C:=
D:>=

32.关于SQL Server中的事务,以下说法错误的是( )。(选择一项)
A:事务中的所有元素必须作为一个整体提交或回滚
B:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务
C:SQL Server中不能使用事务日志保存受到故障影响的事务
D:当事务成功完成时,数据必须再次回到已知的一致状态

33.在SQL Server中,下面的( )语句是正确的。(选择一项)
A:CREATE VIEW view1 AS SELECT * INTO #S1 FROM DEPT GO

B:CREATE VIEW view1 AS SELECT * FROM DEPT ORDER BY DEPTID GO

C:CREATE VIEW view1 AS SELECT TOP 5 * FROM DEPT ORDER BY DEPTID GO

D:CREATE VIEW view1 AS DECLARE did int SET @did=10 SELECT * FROM DEPT WHERE DEPTID =@did GO

34.在SQL Server中,以下关于视图描述错误的是( )。(选择两项)
A:定义视图的查询可以基于一个或多个表
B:定义视图的查询不可以基于其它视图
C:视图通常在查询数据时使用
D:视图一旦被删除,视图中的数据也同时被删除。

35.在SQL Server中,关于变量描述,不正确的是( )。(选择一项)
A:变量可分为全局变量和局部变量两大类
B:全局变量是由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量
C:不能使用SELECT语句给变量赋值
D:可使用DECLARE语句声明局部变量

36.在SQL Server中,下面选项可以正确实现对变量赋值的是( )。(选择两项)
A:declare @name char(10) set @name=‘小强’

B:declare @age int(4)
select @age=18

C:declare @sex bit set @sex=0

D:declare @money money(4) set @money=4

37.在SQL SERVER中,关于用户定义的存储过程说法正确的是( )。(选择一项)
A:使用create procedure语句来创建存储过程
B:存储过程必须带参数
C:存储过程如果有输入参数,则输入参数不能设置默认值
D:存储过程可以没有输出参数,但是必须有输入参数

38.在SQL SERVER中,图书信息表Book中有图书编号id、书名BookName、价格BookPrice、出版日期Tdate等字段,关于下面的代码说法正确的是( )。(选择一项)
declare @avgPrice float select @avgPrice=AVG(BookPrice) from Book if(@avgPrice>80) begin select top 10 * from Book order by BookPrice desc end else begin select top 10 * from Book order by BookPrice asc end
A:如果图书的平均价格高于80,则查出价格最高的10本图书信息
B:如果图书的平均价格高于80,则查出价格最低的10本图书信息
C:如果图书的最高价格高于80,则查出价格最高的10本图书信息
D:如果图书的最高价格高于80,则查出价格最低的10本图书信息

39.在SQL Server中,运行以下T-SQL语句,输出的结果是( )。(选择一项)
CREATE PROC usp_selectStu @stuNo varchar(8)=NULL AS IF @stuNo IS NULL Begin Print ‘请输入学号’ RETURN End SELECT * FROM stuInfo WHERE stuNo=@stuNo GO EXEC usp_selectStu

A:编译错误
B:调用存储过程usp_ selectStu出错
C:显示空的学员信息记录集
D:显示“请输入学号”

40.在SQL Server中,以下关于常用的系统存储过程的说法正确的是( )。(选择一项)
A:sp_databases用于列出数据库服务器中的所有数据库信息
B:sp_helpconstraint用于查看某个表的索引
C:sp_procedures用于显示存储过程的列表
D:sp_tables用于查看系统中存在的表的个数

Entity Framework 常见的问题解决

https://blog.csdn.net/educast/article/details/7673071

 

posted @ 2022-03-08 20:00  CrazyJC  阅读(188)  评论(0编辑  收藏  举报