1.维护数据库的完整性、一致性、你喜欢用触发器仍是自写业务逻辑?为何
答:尽量用约束(包括CHECK、主键、惟一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式能够保证不管何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策javascript
2 : ADO.NET相对于ADO等主要有什么改进?
答 ADO数据以Recordset 形式存储 ADO.NET以DataSet形式存储
Recordset对数据库持续链接访问ADO.NET提供对数据库断开链接
ADO.NET与ADO相比,优点在于提供了数据集和数据适配器,有利于实现分布式处理,下降对数据库服务器资源的消耗。html
3 : ASP.NET与ASP相比,主要有哪些进步?
答 asp.net可使用强类型语言页面是编译,执行速度快, 增长安全性和可靠性,经过继承机制来支持代码的重用,提供声明性服务器控件减小代码行数Asp须要解释,执行速度慢,重用代码不方便,没有调试机制java
4:C#中的委托是什么?事件是否是一种委托?
答 委托本质上是一种“方法接口”,它至关于C/C++中的函数指针,固然它比函数指针安全,在C#中一般用于事件处理。与JAVA相比,能够避免使用大量小粒度的匿名类。
事件不是委托,不过因为事件的性质决定了处理它的程序逻辑能访问的参数,所以,在C#中处理事件的逻辑都包装为委托(一种“方法接口”)。实际上,若是你处理自定义的事件,就像JAVA中那样用接口实现也是能够的,不过这么作在C#通常没有什么特别的好处。程序员
5:new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。web
6:如何把一个array复制到arrayList里
答 foreach( object o in array )
{
arrayList.Add(o)
}正则表达式
7:DataGrid、DataSource能够链接什么数据源
答 [ DataSet、DataTable、DataView] DataSet、DataTable、DataView、IList算法
8:概述反射和序列化
答 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。可使用反射动态地建立类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,而后,能够调用类型的方法或访问其字段和属性
答 序列化:序列化是将对象转换为容易传输的格式的过程。例如,能够序列化一个对象,而后使用 HTTP 经过 Internet 在客户端和服务器之间传输该对象。在另外一端,反序列化将从该流从新构造对象。sql
9:概述OR/Mapping 的原理
答 利用反射,配置 将类于数据库表映射数据库
10:类成员有( )种可访问形式
答 可访问性:public、protected 、private、internal编程
11:用sealed修饰的类有什么特色
答 sealed 修饰符用于防止从所修饰的类派生出其它类。若是一个密封类被指定为其余类的基类,则会发生编译时错误。密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,可是它还能促使某些运行时优化。具体说来,因为密封类永远不会有任何派生类,因此对密封类的实例的虚拟函数成员的调用能够转换为非虚拟调用来处理。
12:执行下面代码后:
String strTemp =”abcdefg 某某某”;
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
问:i=(14 ) ;j=(11 )
i=(14 ) ;j=(11 ) 中文两个字节
13:C#中,string str = null 与 string str =””,请尽可能用文字说明区别。(要点:说明详细的内存空间分配)
答 string str = null 是不分配内存空间,而string str = “” 给它分配长度为空字符串的内存空间。
14:概述.NET里对 Remoting 和 Webservices 两项技术的理解和实际中的应用
答 远程逻辑调用,Remoing接口只能用在.NET中
16:概述三层结构体系
答 表示层 数据层 业务层
17:用.net作B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为何要这样分层?
答:通常为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层通常分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单
优势: 分工明确,条理清晰,易于调试,并且具备可扩展性。
缺点: 增长成本。
18:什么是ASP.NET中的用户控件
答:用户控件就是.ascx扩展名的东西喽,能够拖到不一样的页面中调用,以节省代码.好比登录可能在多个页面上有,就能够作成用户控件,可是有一个问题就是用户控件拖到不一样级别的目录下后里面的图片等的相对路径会变得不许确,须要自已写方法调整。
19:什么叫应用程序域?
什么是受管制的代码?
什么是强类型系统?
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别做何解释?
答 应用程序域能够理解为一种轻量级进程。起到安全的做用。占用资源小
受管制的代码:unsafe:非托管代码。不通过CLR运行。
强类型系统 RTTI:类型识别系统。
装箱就是把值类型到引用类型的转换
拆箱就是引用类型到值类型的转换
重载 方法名相同 不用个数的参数或者指定不一样参数类型
CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
class box{
int aa(object i) {}
object bb(){}
}
int bb=5
new box().aa(bb) //装箱
int conver=(int)new box().zz(); //拆箱
//重载
public void aaa(int rad){ }
public void aaa(int len,int bre ){ }
public void aaa(sting str){ }
20:列举一下你所了解的XML技术及其应用
答:XML能够统一数据格式,XML但是好东西,保存配置,站与站之间的交流,WebServices都要用它.
21 :ADO.NET中经常使用的对象有哪些?分别描述一下。
答: Connection 对象用于在应用程序和数据库之间的链接
Command 能够检索和操纵数据库中的数据
DataAdapter对象充当DataSet和数据源之间用于检索和保存数据的桥接器
DataSet 对象从数据库检索的数据能够存储在其中可以以XML形式保存
DataReader 是查询结果的一种只进。只读的视图 不具备DataSet的任何复杂功能
因此能够加快访问和查看数据的速度 不提供断开式访问
22:如何理解委托?
答:听说至关于函数指针,定义了委托就能够在不调用原方法名称的状况下调用那个方法.
msdn2005中是这样解释的:
委托具备如下特色:委托相似于 C++ 函数指针,但它是类型安全的。
委托容许将方法做为参数进行传递。委托可用于定义回调方法
委托能够连接在一块儿;例如,能够对一个事件调用多个方法。
方法不须要与委托签名精确匹配。
23:C#中的委托是什么?事件是否是一种委托?
答 委托能够把一个方法做为参数代入另外一个方法。
委托能够理解为指向一个函数的引用。
是,是一种特殊的委托
24:UDP链接和TCP链接的异同。
答:UDP前者只管传,无论数据到不到,无须创建链接.TCP后者保证传输的数据准确,需要连结。
25:ASP.NET的身份验证方式有哪些?分别是什么原理?
答:Forms认证,Windows集成认证等,Passport验证 None
27:什么是Code-Behind技术。
答:代码分离,这是个明智的东西,或者能够理解成HTML代码写在前台,C#代码写在后台.固然前台也有脚本,类的调用等,其实写在一块儿也是能够的。
28:.NET中读写XML的类都归属于哪些命名空间?
答:System.Xml
29解释一下UDDI、WSDL的意义及其做用
答:UDDI 用于注册各个服务提供商提供的服务 以即可以共享它们 它还有助于WEB服务客户或web用户查找该Web服务
WSDL 是web服务描述语言(web Services Description Language)
30:什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最经常使用的仍是HTTP协议),能够容许任何类型的对象或代码,在任何平台上,以任何一直语言相互通讯。这种相互通讯采用的是XML格式的消息,具体请看
31:如何理解.NET中的垃圾回收机制。
答 GC?对象建立了总要清除啊,否则内存哪够用?
32:经常使用的调用Webservice方法有哪些?
答 HTTP-get Http-post Http-soap
33 概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
答 远程逻辑调用,remoing接口只能用在.net中
34: 简述 private、 protected、 public、 internal 修饰符的访问权限。
答 private : 私有成员, 在类的内部才能够访问。
protected : 保护成员,该类内部和继承类中能够访问。
public : 公共成员,彻底公开,没有访问限制。
internal: 在同一命名空间内能够访问。
35:列举ASP.NET 页面之间传递值的几种方式。
答. 1.使用QueryString,
源页面
string url;
url=”anotherwebform.aspx?name=” + TextBox1.Text
Response.Redirect(url);
目标页面
Label1.Text=Request.QueryString["name"];
2.使用Session变量
源页面
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer(“anotherwebform.aspx”);
目标页面
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove(“name”);
Session.Remove(“email”);
3.使用Server.Transfer
源页面代码:
public string Name
{
get {return TextBox1.Text; }
}
//而后调用Server.Transfer方法
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer(“anotherwebform.aspx”);
}
目标页面代码:
private void Page_Load(object sender, System.EventArgs e)
{
WebForm1 wf1;
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
}
36:一列数的规则以下: 一、一、二、三、五、八、1三、2一、34…… 求第30位数是多少, 用递归算法实现。
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i 0 && i return 1;
else return Foo(i -1) + Foo(i – 2);
}
}
37:override与重载的区别
答 :
override 与重载的区别。重载是方法的名称相同。参数或参数类型不一样,进行屡次重载以适应不一样的须要
Override 是进行基类中函数的重写。为了适应须要。
38:请编程遍历页面上全部TextBox控件并给它赋值为string.Empty?
答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}
39:请编程实现一个冒泡排序算法?
答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length – 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
40:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
答:不是。能够用任意类型。
41:求如下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++) { If((i%2) == 1) { Sum += i ; } else { Sum = Sum – I ; } } System.Console.WriteLine(Sum.ToString()); System.Console.ReadLine() ; 42:在下面的例子里 using System; class A { public A() { PrintFields(); } public virtual void PrintFields(){} } class B:A { int x=1; int y; public B() { y=-1; } public override void PrintFields() { Console.WriteLine(“x={0},y={1}”,x,y); } } 当使用new B()建立B的实例时,产生什么输出? 答:x= 1 y = 0 44:ASP.net的身份验证方式有哪些?分别是什么原理? 答: Windwos(默认)用IIS… From(窗体)用账户 Passport(密钥) 45:在.net中,配件的意思是? 答:程序集。(中间语言,源数据,资源,装配清单) 46:net Remoting 的工做原理是什么? 答:服务器端向客户端发送一个进程编号,一个程序域编号,以肯定对象的位置 47:根据委托(delegate)的知识,请完成如下用户控件中代码片断的填写: namespace test { public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl { public event OnDBOperate OnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e) { if(e.Button.Equals(BtnNew)) { //请在如下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } 答:if( OnNew != null OnNew( this, e ; 48:SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句得到最后更新的事务号 答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1) 49:根据线程安全的相关知识,分析如下代码,当调用test方法时i>10时是否会引发死锁?并简要说明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i–;
test(i);
}
}
}
答:不会发生死锁,(但有一点int是按值传递的,因此每次改变的都只是一个副本,所以不会出现死锁。但若是把int换作一个object,那么死锁会发生)
50:简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
答:WS主要是可利用HTTP穿透防火墙。Remoting能够利用TCP/IP,二进制传送提升效率
51:用C#实现如下功能
a 产生一个int数组,长度为100,并向其中随机插入1-100,而且不能重复
答 :List L=new List();
Random random = new Random();
for (int i = 1; i {
if (L.IndexOf(i) < 0)
{
L.Add(random.Next(1,100));
}
}
b 对上面生成的数组排序,须要支持升序、降序两种顺序
答 L.Reverse(L);
L.Sort(L);
52:请说明.net中的错误处理机制,并举例
答 异常是从 Exception 类类继承的对象。异常从发生问题的代码区域引起,而后沿堆栈向上传递,直到应用程序处理它或程序终止。
try
{ //执行代码,不肯定是否会出错 }
catch
{ //出错处理 }
finally
{ //不管怎样,都要执行 }
53:请说出强名的含义
答 垃圾回收的原理是根据是否空引用,和该数据类型占用内存来判断该收回多少内存.强类型说白就是必需要有个数据类型.
54:请列出c#中几种循环的方法,并指出他们的不一样
答 FOR WHILE foreach do while
55:请指出.net中全部类型的基类
答 object
56:请指出GAC的含义
答 全局访问缓存
57:SQL SREVER中,向一个表中插入了新数据,如何快捷的获得自增量字段的当前值
答 INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES (‘Accountant’,12,125)
58:什么是WEB控件?使用WEB控件有那些优点?
答 web控件就是能够在服务器执行的控件,优点在于能够回传数据,带有事件驱动
59: 请解释ASP.NET中以什么方式进行数据验证?
答 .NET中提供了几个数据验证控件,能够在服务器端或者客户端进行验证。
60: 请谈谈对正则表达式的见解?
答 主要用在字符串的匹配上面,与具体的语言环境无关。
61: ASP.NET中共有几种类型的控件?各有什么区别?
答 Html 控件 传统的html标记
Web 控件 能够回传数据,事件驱动
自定义 控件 在原有控件的基础上增长功能
复合控件 多个子控件复合成一个新的控件
62: WEB控件能够激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为何要使用自动传回。
答 经过实现IPostBack这个接口来执行事件。自动回传就是AutoPostBack,使用自动回传能够监视客户端变化状况并将这种改变返回到服务器端
63: WEB控件及HTML服务端控件可否调用客户端方法?若是能,请解释如何调用?
答 能,服务器端控件在html中表现形式仍是html标记,因此能够执行客户端事件,有多种方式:一、control.Attributes["onclick"]=”…;”;
二、
64: 请解释ASP.NET中的web页面与其隐藏类之间的关系?
答 继承的关系
65: 什么是viewstate,可否禁用?是否所用控件均可以禁用?
答 能够所有禁用,viewstate就是hidden input,只不过加上了微软的编码方式记录控件的状态
66: 当发现不能读取页面上的输入的数据时颇有多是什么缘由形成的?怎么解决
答 可能就是事件没有关联,或者根本就没有写读取代码。
解决 检查代码, 设断点调试
67:请解释一个WEB页面中代码执行次序。
答 参看.cs 知道最早执行OnInit(); 而后到Page_Load,最后到具体的执行事件。
68:请解释什么是上下文对象,在什么状况下要使用上下文对象
答 HttpContext, 在类中调用的时候须要用到HttpContext
69:请解释转发与跳转的区别?
答 Transfer 是转发 包括HttpHandler对象
Redirect 就是跳转
70: 请解释ASP.NET中Button、LinkButton、ImageButton 及HyperLink这四个控件之间的功别
答 Button、ImageButton将数据传递回服务器
HyperLink 页面之间的导航
LinkButton主要用于将数据保存到服务器或访问服务器上的数据
71:请解释一下.NET多层应用程序中层与层之间以那几种方式进行数据传递。并解释你本身的项目中采用那种方式进行。
答 这个传递方式不定,不少都是传递DataSet, XML也能够
72:若是出现ASP.NET中的事件不能触发可能因为什么缘由形成?
答 事件丢失,特别是使用VSS的时候最容易形成这种状况,缘由不明
73:若是须要在DataGrid控件中的某一列中添加下拉列表框并绑定数据怎么解决?
答 使用模板列来添加DropDwonList绑定数据使用代码前置的方式
74:请解释ASP.NET中的数据绑定与传统数据绑定有什么区别?
答 更灵活 更方便
76:请解释接口的显式实现有什么意义?
答 规定强制执行,保持一致
77: 什么状况用HTML控件,什么状况用Web控件,并比较二者差异
答 客户端表现用HTML控件,若是想和Server端交互,那么加上runat=server,它就成了服务器端控件,但它没有Web控件的不少方法和属性,若是你须要用到,那么仍是用Web Controls
78: C#中的接口和类有什么异同。
答 接口只能包含抽象方法,不能包含任何方法实现,不能建立接口实例,接口成员没有访问修饰符,接口成员必须是方法属性事件或者索引器不能包含常数字段运算符也不能有静态成员
可访问性的关键字有以下5个:
internal:在所属程序集中能够访问。
private:私有成员, 在当前类中能够访问。
protected:保护成员,在当前类及其子类中能够访问。
public:公共成员,彻底公开,没有访问限制。
internal protected:在所属程序集或当前类的子类中能够访问。(题目中未说起)
【扩展】
类的修饰符:abstract,sealed,static,unsafe 4个。
abstract:类是抽象的,不能建立类的实例
sealed:类是密封的,不能被继承
static:类是静态的,只有静态成员,没有非静态成员
unsafe:类有非安全的结构,好比指针
2 .列举ASP.NET 页面之间传递值的几种方式。
答:有 querystring,cookie,session,server.transfer,application 5种方式。
【扩展】
1.使用QueryString方式(或称url传值、Response.Redirect传值),这是最简单的方式,由于传递的值在浏览器的url中会显示出来,因此用来传递没有安全要求的值。
发送页面代码:
Response.Redirect(“index.aspx?username=”+txtUserName.Text.Trim());接收页面代码:
if(Request.QueryString["username"]!=null)
{
strUserName = Request.QueryString["username"];
}
2.使用cookie方式,cookie由服务器建立,可是保存在客户端
发送页面代码:
HttpCookie userName = new HttpCookie(“username”);
userName.Value = this.txtUserName.Text.Trim();
Response.Cookies.Add(userName);
Response.Redirect(“index.aspx”);接收页面代码:
if (Request.Cookies["username"] != null)
{
strUserName = Request.Cookies["username"].Value;
}
3.使用Session变量,session在用户向服务器发出首次请求时被建立,在服务器端,在用户关闭浏览器或异常发生时终止(还有别的session过时状况)。
发送页面代码:
Session["username"] = this.txtUserName.Text.trim();
Response.Redirect(“index.aspx”);接收页面代码:
if (Session["username"] != null)
{
strUserName = Session["username"].ToString();
}
4.使用Application变量
发送页面代码:
Application["username"] = this.txtUserName.Text.trim();
Response.Redirect(“index.aspx”);接收页面代码:
if (Application["username"] != null)
{
strUserName = Application["username"].ToString();
}
5.使用Server.Transfer方式(或称为HttpContext方式),要传递的变量能够经过属性或方法来得到,使用属性比较容易一些。
发送页面制做一个属性:
public string GetName
{
get { return this.txtUserName.Text.Trim(); }
}
发送页面代码:
Server.Transfer(“index.aspx”);接收页面代码:
w = (WebForm4)Context.Handler;
strUserName = w.GetName;
3.重写、重载和隐藏三个概念的区别。
答:重写(Override)指用Override关键字从新实现基类中的虚方法,在运行过程当中,不管经过哪一个类型的引用,真正对象类型的方法将被调用。
重载(Overload)指多个方法共享一个名字而且拥有相同的返回值,可是拥有不一样的参数。
隐藏(new)指用new关键字从新实现基类中的方法,在运行的过程当中经过引用的类型判断应该调用哪一个类型的方法。
【扩展】
重写实现的是运行时多态,重载实现的是编译时多态。
override 与重载的区别。重载是方法的名称相同。参数或参数类型不一样,进行屡次重载以适应不一样的须要
Override 是进行基类中函数的重写。为了适应须要。
6.若是在一个B/S结构的系统中须要传递变量值,可是又不能使用Session、Cookie、Application,您有几种方法进行处理?
答 :
this.Server.Transfer
7.请编程遍历页面上全部TextBox控件并给它赋值为string.Empty?
答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}
16.什么是受管制的代码?
答:unsafe:非托管代码。不通过CLR运行。
17.什么是强类型系统?
答:RTTI:类型识别系统。
22.经常使用的调用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
23..NET Remoting 的工做原理是什么?
答:服务器端向客户端发送一个进程编号,一个程序域编号,以肯定对象的位置。
25.请详述在.NET中类(class)与结构(struct)的异同?
答:Class能够被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到如下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的全部行 (排序的方式如DataGrid类似)。根据您的知识,请简要谈一下您的思路
答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。
32.给定如下XML文件,完成算法流程图。
< DriverC >
请画出遍历全部文件名(FileName)的流程图(请使用递归算法)。
答:
void FindFile( Directory d )
{
FileOrFolders = d.GetFileOrFolders();
foreach( FileOrFolder fof in FileOrFolders )
{
if( fof is File )
You Found a file;
else if ( fof is Directory )
FindFile( fof );
}
}
33.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增加的ID做为主键,注意:ID可能不是连续的。
答:解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
35.能用foreach遍历访问的对象须要实现 ________________接口或声明________________方法的类型。
答:IEnumerable 、 GetEnumerator。
37.String s = new String(“xyz”);建立了几个String Object?
答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
41.构造器Constructor是否可被Override?
答:构造器Constructor不能被继承,所以不能重写Overriding,但能够被重载Overloading。
43.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,何时被执行,在return前仍是后?
答:会执行,在return前执行。
55.如何处理几十万条并发数据?
答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.
56.Session有什么重大BUG,微软提出了什么方法加以解决?
答:是IIS中因为有进程回收机制,系统繁忙的话Session会丢失,能够用Sate Server或SQL Server数据库的方式存储Session不过这种方式比较慢,并且没法捕获Session的END事件。
57.进程和线程的区别?
答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程能够有多个线程,这些线程共享这个进程的资源。
58.堆和栈的区别?
答:
栈:由编译器自动分配、释放。在函数体中定义的变量一般在栈上。
堆:通常由程序员分配释放。用new、malloc等分配内存函数分配获得的就是在堆上。
59.成员变量和成员函数前加static的做用?
答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。好比类成员变量能够用来统计类实例的数量,类成员函数负责这种统计的动做。
62.请说明在.NET中经常使用的几种页面间传递参数的方法,并说出他们的优缺点。
答:session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype=”hidden” 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
63.请指出GAC的含义?
答:全局程序集缓存。
64.向服务器发送请求有几种方式?
答:get,post。get通常为连接方式,post通常为按钮方式。
65.DataReader与DataSet有什么区别?
答:一个是只能向前的只读游标,一个是内存中的表。
66.软件开发过程通常有几个阶段?每一个阶段的做用?
答:需求分析,架构设计,代码编写,QA,部署
67.在C#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 建立实例 new 隐藏基类中方法。
答:using 引入名称空间或者使用非托管资源
new 新建实例或者隐藏父类方法
68.须要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,若是字符串中间还有连续空格的话,仅保留一个空格,即容许字符串中间有多个空格,但连续的空格数不可超过一个.
答:string inputStr=” xx xx “;
inputStr=Regex.Replace(inputStr.Trim(),” *”,” “);
69.下面这段代码输出什么?为何?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine(“Equal”);
else
Console.WriteLine(“Not Equal”);
答:不相等,由于比较的是对象
70.什么叫作SQL注入,如何防止?请举例说明。
答:利用sql关键字对网站进行攻击。过滤关键字’等
71.什么是反射?
答:动态获取程序集信息
72.用Singleton如何写设计模式
答:static属性里面new ,构造函数private
73.什么是Application Pool?
答:Web应用,相似Thread Pool,提升并发性能。
74.什么是虚函数?什么是抽象函数?
答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。
75.什么是XML?
答:XML便可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,经过此种标记,计算机之间能够处理包含各类信息的文章等。如何定义这些标记,便可以选择国际通用的标记语言,好比HTML,也可使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。
76.什么是Web Service?UDDI?
答:Web Service即是基于网络的、分布式的模块化组件,它执行特定的任务,遵照具体的技术规范,这些规范使得Web Service能与其余兼容的组件进行互操做。
UDDI 的目的是为电子商务创建标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业可以发现的访问协议的实现标准。
78.列举一下你所了解的XML技术及其应用
答:XML用于配置,用于保存静态数据类型.接触XML最多的是Web Services..和config
81.什么是SOAP?有哪些应用。
答:simple object access protocal,简单对象接受协议.以xml为基本编码结构,创建在已有通讯协议上(如http,不过听说ms在搞最底层的架构在tcp/ip上的soap)的一种规范Web Service使用的协议..
83.XML 与 HTML 的主要区别
答:1. XML是区分大小写字母的,HTML不区分。
2. 在HTML中,若是上下文清楚地显示出段落或者列表键在何处结尾,那么你能够省略
或者
之类的结束 标记。在XML中,绝对不能省略掉结束标记。
3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符做为结尾。这样分析器就知道不用 查找结束标记了。
4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
5. 在HTML中,能够拥有不带值的属性名。在XML中,全部的属性都必须带有相应的值。
99.利用operator声明且仅声明了==,有什么错误么?
答:要同时修改Equale和GetHash() ? 重载了”==” 就必须重载 “!=”
102.在.net(C# or vb.net)中,Appplication.Exit 仍是 Form.Close有什么不一样?
答:一个是退出整个应用程序,一个是关闭其中一个Form。
103.在C#中有一个double型的变量,好比10321.5,好比122235401.21644,做为货币的值如何按各个不一样国家的习惯来输出。好比美国用$10,321.50和$122,235,401.22而在英国则为£10 321.50和£122 235 401.22
答:System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo(“en-US”);
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo(“en-GB”);为英 国 货币类型
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,”My amount = {0:c}”,y);
8. 62-63=1 等式不成立,请移动一个数字(不能够移动减号和等于号),使得等式成立,如何移动?
答案:62移动成2的6次方
108.ADO.NET相对于ADO等主要有什么改进?
答:1ADO.NET不依赖于OleDb提供程序,而是使用.NET托管提供的程序
2不使用com
3不在支持动态游标和服务器端游
4能够断开Connection而保留当前数据集可用
5强类型转换
6 xml支持
109.写一个HTML页面,实现如下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
答:
<script language=javascript> setTimeout('window.close();',3000000000); function show() { if (window.event.button == 1) { alert("左"); } else if (window.event.button == 2) { alert("右"); }else{ alert("中"); } } document.onmousedown=show; </script>
110.大概描述一下ASP.NET服务器控件的生命周期
答:初始化 加载视图状态 处理回发数据 加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载
113.,&和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).
118.和 有什么区别?
答:表示绑定的数据源
是服务器端代码块
119.你以为ASP.NET 2.0(VS2005)和你之前使用的开发工具(.Net 1.0或其余)有什么最大的区别?你在之前的平台上使用的哪些开发思想(pattern / architecture)能够移植到ASP.NET 2.0上 (或者已经内嵌在ASP.NET 2.0中)
答:1 ASP.NET 2.0 把一些代码进行了封装打包,因此相比1.0相同功能减小了不少代码.
2 同时支持代码分离和页面嵌入服务器端代码两种模式,之前1.0版本,.NET提示帮助只有在分离的代码文件,没法在页面嵌入服务器端代码得到帮助提示,
3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
4 在绑定数据,作表的分页.Update,Delete,等操做均可以可视化操做,方便了初学者
5 在ASP.NET中增长了40多个新的控件,减小了工做量
125.分析如下代码。
public static void Test(string ConnectString)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = ConnectString;
try {
conn.Open();
…….
}
catch(Exception Ex) {
MessageBox.Show(Ex.ToString());
}
finally {
if (!conn.State.Equals(ConnectionState.Closed))
conn.Close();
}
}
请问
1)以上代码能够正确使用链接池吗?
答:回答:若是传入的connectionString是如出一辙的话,能够正确使用链接池。不过如出一辙的意思是,连字符的空格数,顺序彻底一致。
2)以上代码所使用的异常处理方法,是否全部在Test方法内的异常均可以被捕捉并显示出来?
答:只能够捕捉数据库链接中的异常吧. (finally中,catch中,若是有别的可能引起异常的操做,也应该用try,catch。因此理论上并不是全部异常都会被捕捉。)
127.什么是WSE?目前最新的版本是多少?
答:WSE (Web Service Extension) 包来提供最新的Web服务安全保证,目前最新版本2.0。
129.下面的例子中
using System;
class A{
public static int X;
static A(){
X=B.Y+1;
}
}
class B{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine(“X={0},Y={1}”,A.X,B.Y);
}
}
产生的输出结果是什么?
答:x=1,y=2
2. 不定项选择:
(1) 如下叙述正确的是: B C
A. 接口中能够有虚方法。B. 一个类能够实现多个接口。 C. 接口不能被实例化。 D. 接口中能够包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:B C D
A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader
2.对于一个实现了IDisposable接口的类,如下哪些项能够执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close
B.Dispose
C.Finalize
D.using
E.Quit
3.如下关于ref和out的描述哪些项是正确的?(多选) ( ACD )
A.使用ref参数,传递到ref参数的参数必须最早初始化。
B.使用out参数,传递到out参数的参数必须最早初始化。
C.使用ref参数,必须将参数做为ref参数显式传递到方法。
D.使用out参数,必须将参数做为out参数显式传递到方法。
1.在对SQL Server 数据库操做时应选用(A)。
a)SQL Server .NET Framework 数据提供程序;
b)OLE DB .NET Framework 数据提供程序;
c)ODBC .NET Framework 数据提供程序;
d)Oracle .NET Framework数据提供程序;
2.下列选项中,(C)是引用类型。
a)enum类型 b)struct类型 c)string类型 d)int类型
3.关于ASP.NET中的代码隐藏文件的描述正确的是(C)
a)Web窗体页的程序的逻辑由代码组成,这些代码的建立用于与窗体交互。编程逻辑惟一与用户界面不一样的文件中。该文件称做为“代码隐藏”文件,若是用C#建立,该文件将具备“.ascx.cs”扩展名。
b)项目中全部Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中全部的Web窗体页的代码隐藏文件都被编译成项目动态连接库(.dll)文件。
d)以上都不正确。
4.如下描述错误的是(A)
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件而且在同一处声明和定义类的成员。
c)在C#中可以使用 new 修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中从新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有(A)
a)值类型和调用类型; b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型;
6.下列描述错误的是(D)
a)类不能够多重继承而接口能够;
b)抽象类自身能够定义成员而接口不能够;
c)抽象类和接口都不能被实例化;
d)一个类能够有多个基类和多个基接口;
7.在DOM中,装载一个XML文档的方法(D)
a)save方法 b)load方法 c)loadXML方法 d)send方法
8.下列关于构造函数的描述正确的是(C)
a)构造函数能够声明返回类型。
b)构造函数不能够用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
9.如下是一些C#中的枚举型的定义,其中错误的用法有()
a)public enum var1{ Mike = 100, Nike = 102, Jike }
b)public enum var1{ Mike = 100, Nike, Jike }
c)public enum var1{ Mike=-1 , Nike, Jike }
d)public enum var1{ Mike , Nike , Jike }
10.int[][] myArray3=new int[3][]{
new int[3]{5,6,2},
new int[5]{6,9,7,8,3},
new int[2]{3,2}
};
myArray3[2][2]的值是(D)。
a)9 b)2 c)6 d)越界
11.接口是一种引用类型,在接口中能够声明(A),但不能够声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;
b)方法、属性信息、属性;
c)索引器和字段;
d)事件和字段;
12.ASP.NET框架中,服务器控件是为配合Web表单工做而专门设计的。服务器控件有两种类型,它们是(A )
a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件 d)HTML控件和IIS控件
13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( D)
a)
b)
c)
d)以上皆非
14.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。
a)insert、update、delete等操做的Sql语句主要用ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操做的Sql语句只能由ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个DataReder对象;
15.下列ASP.NET语句(b)正确地建立了一个与SQL Server 2000数据库的链接。
a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
16.WinForm中,关于ToolBar控件的属性和事件的描述不正确的是(D)。
a)Buttons属性表示ToolBar控件的全部工具栏按钮
b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
c)DropDownArrows属性代表工具栏按钮(该按钮有一列值须要如下拉方式显示)旁边是否显示下箭头键
d)ButtonClick事件在用户单击工具栏任何地方时都会触发
17.在ADO.NET中执行一个存储过程时,若是要设置输出参数则必须同时设置参数的方向和(B ),必要时还要设置参数尺寸。
a)大小; b)上限; c)初始值; d)类型;
18.若是将窗体的FormBoderStyle设置为None,则( B)。
a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小;
c)窗体有边框但不能调整大小; d)窗体是透明的;
19.若是要将窗体设置为透明的,则( B)
a)要将FormBoderStyle属性设置为None; b)要将Opacity属性设置为小于100%得值;
c)要将locked 属性设置为True; d)要将 Enabled属性设置为True;
20.下列关于C#中索引器理解正确的是(B/C )
a)索引器的参数必须是两个或两个以上 b)索引器的参数类型必须是整数型
c)索引器没有名字 d)以上皆非
21.下面描述错误的是( C/D)。
a)窗体也是控件; b)窗体也是类; c)控件是从窗体继承来的; d)窗体的父类是控件类;
22.要对注册表进行操做则必须包含( D)。
a)System.ComponentModel命名空间; b)System.Collections命名空间;
c)System.Threading命名空间; d)Microsoft.Win32命名空间;
23.要建立多文档应用程序,须要将窗体的(D )属性设为true。
a)DrawGrid; b)ShowInTaskbar; c)Enabled; d)IsMdiContainer;
24.若是设treeView1=new TreeView(),则treeView1.Nodes.Add(“根节点”)返回的是一个 ()类型的值。
a)TreeNode;
b)int;
c)string;
d)TreeView;
25.下面关于XML的描述错误的是(D)。
a)XML提供一种描述结构化数据的方法;
b)XML 是一种简单、与平台无关并被普遍采用的标准;
c)XML文档可承载各类信息;
d)XML只是为了生成结构化文档;
1.装箱、拆箱操做发生在: ( C )
A.类与对象之间 B.对象与对象之间
C.引用类型与值类型之间 D.引用类型与引用类型之间
2.用户类若想支持Foreach语句须要实现的接口是: ( A )
A.IEnumerableB.IEnumerator
C.ICollectionD.ICollectData
3..Net Framework经过什么与COM组件进行交互操做?( C )
A.Side By SideB.Web Service
C.InteropD.PInvoke
4..Net依靠如下哪一项技术解决COM存在的Dll Hell问题的?( A )
A.Side By SideB.Interop
C.PInvokeD.COM+
6.如下哪一个是能够变长的数组?( D )
A.Array B.string[]
C.string[N] D.ArrayList
7.用户自定义异常类须要从如下哪一个类继承:( A )
A.Exception B.CustomException
C.ApplicationException D.BaseException
9.对于一个实现了IDisposable接口的类,如下哪些项能够执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )
A.Close B.DisposeC.Finalize
D.using E.Quit
10.Net依赖如下哪项技术实现跨语言互用性?( C )
A.CLR B.CTS C.CLS D.CTT
11.请问: String类与StringBuilder类有什么区别?为何在.Net类库中要同时存在这2个类?(简答)
若是要操做一个不断增加的字符串,尽可能不用String类,改用StringBuilder类。两个类的工做原理不一样:String类是一种传统的修改字符串的方式,它确实能够完成把一个字符串添加到另外一个字符串上的工做没错,可是在.NET框架下,这个操做实在是划不来。由于系统先是把两个字符串写入内存,接着删除原来的String对象,而后建立一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了很多时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,可以在已有对象的原地进行字符串的修改,简单并且直接。固然,通常状况下觉察不到这两者效率的差别,但若是你要对某个字符串进行大量的添加操做,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。
2、C# 部分*
13.如下哪些能够做为接口成员?(多选) ( ABDE )
A.方法B.属性C.字段D.事件E.索引器
F.构造函数G.析构函数
14.如下关于ref和out的描述哪些项是正确的?(多选) ( ACD )
A.使用ref参数,传递到ref参数的参数必须最早初始化。
B.使用out参数,传递到out参数的参数必须最早初始化。
C.使用ref参数,必须将参数做为ref参数显式传递到方法。
D.使用out参数,必须将参数做为out参数显式传递到方法。
15.“访问范围限定于此程序或那些由它所属的类派生的类型”是对如下哪一个成员可访问性含义的正确描述?( B )
A.public B.protected C.internal D.protected internal
16.class Class1
{
private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
请问,o1.Count的值是多少?( C )
A.1 B.2 C.3 D.4
17.abstract class BaseClass
{
public virtual void MethodA()
{
}
public virtual void MethodB()
{
}
}
class Class1: BaseClass
{
public void MethodA(string arg)
{
}
public override void MethodB()
{
}
}
class Class2: Class1
{
new public void MethodB()
{
}
}
class MainClass
{
public static void Main(string[] args)
{
Class2 o = new Class2();
Console.WriteLine(o.MethodA());
}
}
请问,o.MethodA调用的是: ( A )
A.BaseClass.MethodAB.Class2.MethodA
C.Class1.MethodAD.都不是
18.请叙述属性与索引器的区别。
属性 索引器
经过名称标识。 经过签名标识。
经过简单名称或成员访问来访问。 经过元素访问来访问。
能够为静态成员或实例成员。 必须为实例成员。
属性的 get 访问器没有参数。 索引器的 get 访问器具备与索引器相同的形参表。
属性的 set 访问器包含隐式 value 参数。 除了 value 参数外,索引器的 set 访问器还具备与索引器相同的形参表。
19.请叙述const与readonly的区别。
每个class至多只能够定义一个static构造函数,而且不容许增长访问级别关键字,参数列必须为空。
为了避免违背编码规则,一般把static数据成员声明为private,而后经过statci property提供读写访问。
const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。
const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。由于它是在编译时就须要彻底评估。
const成员可使用另外一个const成员来初始化,前提是二者之间没有循环依赖。
readonly在运行期评估赋值,使咱们得以在确保“只读访问”的前提下,把object的初始化动做推迟到运行期进行。
readonly 关键字与 const 关键字不一样: const 字段只能在该字段的声明中初始化。readonly 字段能够在声明或构造函数中初始化。所以,根据所使用的构造函数,readonly 字段可能具备不一样的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。
readonly 只能在声明时或者构造函数里面初始化,而且不能在 static 修饰的构造函数里面。
21.您须要建立一个ASP.NET应用程序,公司考虑使用Windows身份认证。
全部的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:
a、 匿名用户不容许访问这个应用程序。
b、 全部雇员除了Tess和King都容许访问这个应用程序。
请问您应该使用如下哪个代码段来配置这个应用程序?( A )
A.
B.
C.
D.
E.
22.您要建立一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么作?( C? )
A.重写OnPreRender事件,当Grid的Footer行被建立时显示合计数。
B.重写OnItemCreated事件,当Grid的Footer行被建立时显示合计数。
C.重写OnItemDataBound事件,当Grid的Footer行被建立时显示合计数。
D. 重写OnLayout事件,当Grid的Footer行被建立时显示合计数。
23.您要建立ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它能够显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么作?(多选)( CD )
A.在这个应用程序的Global.asax文件中建立一个Application_Error过程去处理ASP.NET代码错误。
B.在这个应用程序的Web.config文件中建立一个applicationError节去处理ASP.NET代码错误。
C.在这个应用程序的Global.asax文件中建立一个CustomErrors事件去处理HTTP错误。
D.在这个应用程序的Web.config文件中建立一个CustomErrors节去处理HTTP错误。
E.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET 代码错误。
F. 在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET HTTP错误。
24.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。如今须要您写一个数据库链接字符串,用以链接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪个字符串?( B )
A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”
B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”
C. “Data Source= AllWin \PubBase;Initial Category=PubBase;Integrated Security= SSPI”
D. “Data Source= AllWin \ PubBase;Database=Test;Integrated Security= SSPI”
25.您为AllWin公司建立了一个ASP.NET应用程序。这个应用程序调用一个 Xml Web Service。这个 Xml Web Service 将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个 Xml Web Service?( ? )
A.在“引用”对话框的.Net标签中选择 System.Web.Services.dll。
B.在“Web引用”对话框中输入这个 XML Web service 的地址。
C.在您的 Global.asax.cs 中添加一条 using 语句并指定这个 XML Web service 的地址。
D.在您的 Global.asax.cs 中写一个事件处理器导入这个 Xml Web Service 相应的 .wsdl 和 .disco 文件。
26.您要建立一个ASP.NET应用程序在DataGrid控件中显示一个通过排序的列表。产品数据被存放于一个名为PubBase的Microsoft SQL Server 数据库。每一个产品的主键是ProductID,Numeric型而且每一个产品有一个字母描述字段,名为ProductName。您使用一个SqlDataAdapter对象和一个SqlCommand对象经过调用一个存储过程从数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为procProductList。您成功的获取了一个DataTable对象,其中是已经按ProductID降序排列的产品列表。您打算显示以相反的字母顺序排列的ProductName,请问该怎么作? ( B )
A. 将SqlCommand对象的CommandType属性修改成CommandType.Text,将CommandText属性修改成”SELECT * FROM procProductList ORDER BY ProductName DESC”。而后将这个DataTable对象绑定到DataGrid控件。
B. 建立一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductName DESC”。而后将这个DataView对象绑定到DataGrid控件。
C. 将DataGrid控件的AllowSorting属性设置为True,并将DataGridColumn的SortExpression属性设置为 “ProductName DESC”.以显示ProductName。而后将这个DataTable对象绑定到DataGrid控件。
D. 将DataTable对象的DisplayExpression属性设置为 “ORDER BY ProductName DESC”.。而后将这个DataTable对象绑定到DataGrid控件。
76.C#代码实现,确保windows程序只有一个实例(instance)
///
///应用程序的主入口点。
///
[STAThread]
staticvoid Main()
{
//防止程序屡次运行
if(!OneInstance.IsFirst(“GetPayInfo”))
{
MessageBox.Show (“警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏找到!”,”程序错误提示:”,MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
Application.Run(new Form1());
}
// ******************* 防止程序屡次执行 **************************
publicabstractclass OneInstance
{
///
///判断程序是否正在运行
///
///程序名称 ///若是程序是第一次运行返回True,不然返回False
publicstaticbool IsFirst(string appId)
{
bool ret=false;
if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)
{
CreateMutex(IntPtr.Zero,0,appId);
ret=true;
}
return ret;
}
[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr OpenMutex(
uint dwDesiredAccess, // access
int bInheritHandle, // inheritance option
string lpName // object name
);
[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
privatestaticextern IntPtr CreateMutex(
IntPtr lpMutexAttributes, // SD
int bInitialOwner, // initial owner
string lpName // object name
);
}
四、DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操做数据库..任何对SqlConnection的操做都会引起DataReader的异常..由于DataReader每次只在内存中加载一条数据,因此占用的内存是很小的..由于DataReader的特殊性和高性能.因此DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库链接..读取完毕即放弃数据库链接..由于DataSet将数据所有加载在内存中.因此比较消耗内存…可是确比DataReader要灵活..能够动态的添加行,列,数据.对数据库进行回传更新操做…
6. 私有程序集与共享程序集有什么区别?
一个私有程序集一般为单个应用程序所使用,而且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集一般存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集一般是对许多应用程序都有用的代码库,好比.NET Framework类。
7. 请解释进程与线程的区别?进程与程序的区别?
通常,一个应用程序对应于一个或多个进程,能够把进程看做是该应用程序在*做系统中的标识;而一个进程一般由多个线程组成,而线程是*做系统为该应用程序分配处理时间的最小单元。
8. CLR与IL分别是什么含义?
CLR:公共语言运行时,相似于Java中的JVM,Java虚拟机;在.Net环境下,各类编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与*做系统进行通讯,而编程语言如C#.NET将尽可能避免直接与*做系统直接通讯,增强了程序代码的执行安全性,能够这样看:CLR就是具体的编程语言如:C#.NET与*做系统之间的翻译,同时它为具体的编程语言提供了许多资源:
IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;全部.NET源代码(无论用哪一种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
13. 请解释web.config文件中的重要节点
appSettings包含自定义应用程序设置。
system.web 系统配置
compilation动态调试编译设置
customErrors自定义错误信息设置
authentication身份验证,此节设置应用程序的身份验证策略。
authorization受权, 此节设置应用程序的受权策略.
14. 请解释ASP。NET中的web页面与其隐藏类之间的关系?
一个ASP.NET页面通常都对应一个隐藏类,通常都在ASP.NET页面的声明中指定了隐藏类例如一个页面Tst1.aspx的页面声明以下
Codebehind=”Tst1.aspx.cs” 代表经编译此页面时使用哪个代码文件
Inherits=”T1.Tst1″ 表用运行时使用哪个隐藏类
15. 什么是ViewState,可否禁用?是否所用控件均可以禁用?
ViewState是保存状态的一种机制,EnableViewState属性设置为false便可禁用
16. 当发现不能读取页面上的输入的数据时颇有多是什么缘由形成的?怎么解决
颇有多是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断
17. 请解释什么是上下文对象,在什么状况下要使用上下文对象
上下文对象是指HttpContext类的Current 属性,当咱们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对象
18. 请解释转发与跳转的区别?
转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理而后从服务端跳转到其它页面
跳转就是指客户端的跳转
4. 简述全局变量和局部变量的区别。
全局变量和局部变量的差异:程序上讲是做用域不一样,生存期不一样,存储上来说,存储的位置不一样,
一个存放在静态存储区,另外一个存放在动态存储区。
5. 简述传值调用与传址调用的主要区别。
传值调用,实参把值传递给参数,在被调函数中形参的值得变化不会影响实参。传址调用,实参把值的地址传给了形参,若是被调函数中形参所指的值发生了变化,实参所指的值夜将变化,由于他们指向的是同一个地址。
6. 试述函数和过程的区别。
函数和过程不是asp.net的内容吧?pascal中有这个概念,函数可有返回值,存过程没有(可是能够经过
参数达到这样的效果)。
7. 对变量而言,遵循“先声明,后使用”的原则有什么好处。
先声名,在编译调试的过程当中能够及早的发现问题。众所周知,解决问题越早付出的代价越少。
8. HtmlGenericControl控件与那些Html标记对应?
HtmlGenericControl控件与那些Html标记对应?能够到msdn上察看。这就不累赘了。
9. 控件LinkButton与Button的主要区别在哪里?
LinkButton和Button外观上不一样,linkbutton上的文本显示为超连接的样子,用法和Button相同。
10. 控件ImageButton与Image有哪些不一样?
ImageButton上显示的是图片,用法和Button也大同小异。
13. 在设计ASP.NET应用程序时,怎样获取客户端的IP地址?
能够在客户端提取IP,也能够在服务器端提取。客户端用jscript或javascript,服务器端有相应的类解决。
14. 在ASP.NET应用程序设计中,Server.MapPath()方法有什么实用价值?
Server.MapPath(),程序作出来之后,移植性好。
19. 简述认证和受权的概念。
包名:System.Security.Principal:
Identity:(识别)包装了已经验证过的用户名和认证的方式
主要成员:Name, IsAuthenticated, AuthenticationType
Principal: 当前代码的security上下文。包含Identity和Roles. 用于受权
主要成员:IsInRole, Identity
* // 通常用户能够有多个Indentity, 即多种身份来访问不一样资源 –pending
* 每一个AppDomain里面都有CallContext,CallContext里面包含Principal。线程在启动的时候也会带上
Pricncipal的ref。静态方法,仅对当前线程
* Thread.CurrentPrincipal / WindowsIdentity.GetCurrent()静态方法返回当前用户。
Permission: 权限。不是用户须要权限,是执行它的代码须要权限。
Demand()要求调用此代码的代码有什么权限。Assert()断言
三种权限:
1 代码权限: 基类为CodeAccessPermission .用来保护环境变量、文件、访问非托管代码。
2 Identity权限:基类为CodeAccessPermission。对应于控制台中的信任集设定。基于发行者、强类型、域、URL。总表:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpguide/html/cpconidentitypermissions.htm
3. PrincipalPermission(Role Based Permission)
Authorization 受权 判断用户是否有权操做,好比登陆的用户有没有权限访问资源或者数据库
Authentication 认证 用户的Identity. 主要有:HTTP基础认证、证书、Kerberos、Passport、NTLM、
Forms-based、Digest
这两个东西最好从读音上区别,之前一直糊涂。通常应用先authenticate用户, 判断用户是否能连接到系
统。而后authorization, 判断对某个功能是否有权限。
authorization通常有两种:ACL/ROLES
ACL:Acess Control Lists. 判断用户是否在有权限的用户组内。缺点:不能定义动态条件。
Role based: 用户加入到某个role之后,自动得到了不少特定的权限。先判断请求者的Identity, 而后看
它是否在Role里面。相似windows用户和组的关系
1. 代码中的检查方式:new PrincipalPermission(name,role).Demand();
2. 利用Attribute的方式:[PrincipalPermissionAttribute(SecurityAction.Demand,Name="MyUser",
Role="Administrator")]3. 使用 Principal 对象中的属性和 IsInRole 方法执行显式安全性检查。4. web.config里面authorization节中的users/roles(这个通常资料都没提到)