DoOtherthing();
}
答:
其实这两个for循环在不同的环境下不同。
总的来说前面的代码简洁,但是多执行了N-1次,效率底些,后面的效率高些,但是不够简洁。
11.描述怎样区分ExcuteNonQuery,ExcuteDataReader和ExcuteScalar方法?
答:
ExcuteNonQuery返回受影响的行数;ExcuteDataReader返回DataReader;ExcuteScalar返回查询结果的第一行的一列的值,忽略其他行列。
12.列出ADO。
NET中读写数据库的主要的几个类?
它们的作用?
答:
Connection数据库连接;Command执行SQL语句或存储过程;DataAdapter用于填充DataSet和更新数据库的一组数据命令和数据库连接,断开模式;DataReader,读取数据库信息,是只读向前的;DataSet数据在内存中的缓存。
13.什么是中间语言(IL)?
它的作用?
答:
代码在执行前都要被编译为托管代码,与CPU无关的指令集。
其作用:
支持平台无关性,还支持语言的互操作性。
14.在SQLSERVER2000中存储过程和触发器的区别?
答:
存储过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。
存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:
UPDATE、INSERT或DELETE。
触发器可以查询其它表,而且可以包含复杂的SQL语句。
它们主要用于强制复杂的业务规则或要求。
例如,可以控制是否允许基于顾客的当前帐户状态插入定单。
触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。
然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。
如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
有关详细信息,请参见表关系。
触发器的优点如下:
触发器是自动的:
它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。
触发器可以通过数据库中的相关表进行层叠更改。
例如,可以在titles表的title_id列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。
该触发器用title_id列作为唯一键,在titleauthor、sales及roysched表中对各匹配行进行定位。
触发器可以强制限制,这些限制比用CHECK约束所定义的更复杂。
与CHECK约束不同的是,触发器可以引用其它表中的列。
15.在ASP.NET中页面之间传递值的方式?
(尽可能叙述)
答:
session(viewstate)简单,但易丢失
application全局
cookie简单,但可能不支持,可能被伪造
inputttype="hidden"简单,可能被伪造
url参数简单,显示于地址栏,长度有限
数据库稳定,安全,但性能相对弱
16.分析类和结构的异同?
答:
类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。
结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。
如何选择使用结构还是类:
1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有1000个点对象的数组,则将为引用每个对象分配附加的内存。
在此情况下,结构的成本较低。
3.在表现抽象和多级别的对象层次时,类是最好的选择
4.大多数情况下该类型只是一些数据时,结构是最佳的选择
17.shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错?
答:
s1是short型的,s1+1是int型的,不能显示的转换成short型,改为s1=(short)(s1+1);
后面的没有错。
18.叙述ASP。
NET中的equiredFieldValidator和RegularExpressionValitor验证控件及作用?
答:
equiredFieldValidator是必须字段验证,RegularExpressionValitor是正则表达式验证。
19.叙述下Using的用法?
答:
1.using指令。
using+命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间。
2.using别名。
using+别名=包括详细命名空间信息的具体的类型。
当一个cs引用多个命名空间时,而有相同的类型时可以这样做。
比如namespace1和namespace2下面都有myClass类时,可以usingclass1=namespace1.myClass;usingclass2=namespace2.myClass。
3.using语句,定义一个范围,在范围结束时处理对象。
20.C#中接口和类有什么异同?
答:
接口包括属性、方法、事件,是负责功能的声明和定义的,功能的实现从继承他的类中实现。
类是实现具体功能的,可以继承多个接口,但是只能继承一个基类。
21.什么是装箱和拆箱?
答:
装箱就是把值类型转换成引用类型,拆箱是把引用类型转换成值类型。
22.什么是WEBSERVICE?
答:
web服务,是利用SOAP(简单对象访问协议,SimpleObjectAccessProtocol)在HTTP上执行远程方法调用的一种方法,也可以使用WSDL(WebServiceDescriptionLanguage,Web服务描述语言)来完整的描述Web服务,基于XML标准。
23.软件开发过程一般有几个阶段?
答:
分析,开发,测试,维护
24.在ASP。
NET中自定义控件是什么?
答:
自定义控件,跟HtmlControl或WebControl相似,编译后可以添加引用到工具栏里
面,直接用鼠标拖动使用
25.ASP.NET的Application、Session、Cookie、ViewState和Cache等变量的区别是什么?
答:
Application:
能够包含任意大小的信息,在整个应用程序周期中有效,是面对所有应用程序用户的,保存于服务器端。
Session:
能够保存相对少量的、简单的数据,一般在用户活动时间加上一端Timeout设定时间中有效(通常是20分钟Timeout),这是面向单个用户的信息,保存于服务器端。
Cookie:
保存少量的、简单的数据,一般不允许超过4KB,使用期限可以进行灵活设定,面向单个用户,保存于浏览器中(也就是客户端)。
ViewState:
保存少量的数据,在一个Web页面周期内有效,面向单个用户,保存于客户端。
Cache:
缓存,大小任意,可以灵活设定可用时间,一般针对所有用户,保存于客户端。
26.解释下在ASP.NET中Response的作用?
答:
Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收、发送数据的对象,这也是实现动态的基础。
27.解释下在ASP.NET中Request的作用?
答:
Request对象的主要作用就是:
在服务器端接受并得到从客户端浏览器提交或上传的信息。
包括从HTML表格用POST方法或GET方法传递的参数、cookie和用户认证。
28.C#中能够使用指针吗?
如果不能使用说明理由,如果能使用说出使用方法?
答:
可以使用。
只能在标记为unsafe关键字的地方使用,任何方法、类、结构、成员都能标记为unsafe,也可以把方法中的一个代码块标记为unsafe,但要注意,不能把局部变量本身标记为unsafe,除非在unsafe的方法或代码块中声明。
三.编程题:
1.为管理岗位业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号、学员姓名、所属单位、学员年龄
C(C#,CN)C#,CN分别代表课程编号、课程名称
SC(S#,C#,G)S#,C#,G分别代表学号、所选修的课程编号、学习成绩
答:
CreatetableS
(
S#varchar(10),
SNvarchar(20),
SDvarchar(50),
SAint
)
CreatetableC
(
C#varchar(10),
CNvarchar(30),
)
CreatetableSC
(
S#varchar(10),
C#varchar(10),
Gvarchar(6)
)
使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
答:
selectS#,SNfromSwhereS#in(selectSC.S#fromSC,CwhereSC.C#=C.C#andC.CN='税收基础')
或:
selectS#,SNfromSwhereS#in(selectS#fromSCwhereC#in(selectC#fromCwhereCN='税收基础))
使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
答:
selectS.SN,S.SDfromS,SCwhereS.S#=SC.S#andSC.C#='C2'
或:
selectSN,SDfromSwhereS#in(selectS#fromSCwhereC#='C2')
使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
答:
selectSN,SDfromSwhereS#notin(selectS#fromSCwhereC#='C2')
使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
答:
selectSN,SDfromSwhereS#in(selectS#fromSCrightjoinConSC.C#=C.C#groupbyS#havingcount(*)=count(S#))
查询选修了课程的学员人数
答:
select学员人数=count(distinctS#)fromSC
查询选修课程超过5门的学员学号和所属单位
答:
selectS#,SDfromSwhereS#in(selectS#fromSCgroupbyS#havingcount(distinctC#)>5)
2.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。
答:
selectIDfromtable1 whereLastUpdateDate=(selectmax(LastUpdateDate)fromtable1)